home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu701.dms / pu701.adf / Imagine_Docs / Compendium.Appendices < prev    next >
Text File  |  1994-08-30  |  162KB  |  2,978 lines

  1.              The Imagine Compendium: Appendices
  2.                 (8/27/91)
  3.  
  4.        edited by Sandy Antunes (antunes@astrod.astro.psu.edu)
  5.  
  6. ========================   INDEX   ==========================================
  7.   APPENDIX A:  DETAIL TUTORIAL (by Steve Worley)
  8.  
  9.   APPENDIX B:  FORMS TUTORIAL (by Steve Worley)
  10.  
  11.   APPENDIX C:  VIDEOTAPE
  12.     i) dumping to videotape
  13.     ii) comments on dumping to videotape
  14.     iii) more comments on dumping to videotape
  15.   APPENDIX D:  CENTAUR TAPE:
  16.     i) review
  17.     ii) second review
  18.   APPENDIX E:  SURFACE MASTER
  19.     i) Advertisement
  20.     ii) Review 1
  21.     iii) Review 2
  22.     iv) Additional Details
  23.   APPENDIX F: TTDDD (an excellent shareware package).
  24.     i) getting coordinates with TTDDD.
  25.     ii) making threads.
  26.   APPENDIX G:  WAY COOL PROJECTS
  27.     i) extruding picture
  28.     ii) rolling sphere
  29.     iii) 3-D font
  30.   APPENDIX H: Credits and email addresses
  31.  
  32. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  33.  
  34. APPENDIX A:  DETAIL TUTORIAL (by Steve Worley)
  35. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  36. This file is a tutorial introduction to the Detail Editor. It
  37. describes the way Imagine stores objects, how Imagine interacts with
  38. you to show the objects you are building, how you can build and
  39. manipulate these objects, and make complex objects formed of many
  40. sub-objects.
  41.  
  42. A later tutorial will describe the more advanced features of the
  43. Detail Editor which allows you to manipulate objects in much more
  44. complex ways, like cutting one object with another, making outlines 
  45. and filling them with faces, defining objects by successive cross 
  46. sections, and bending objects around tubes and spheres, and 
  47. even using outlines as a lathe guide. 
  48.  
  49. A third tutorial will be a more general discussion of the approaches
  50. to object creation, discussing how to plan and actually build your
  51. objects as opposed to what each menu item in the Detail Editor does.
  52.  
  53. This tutorial is more basic than most of my others. I realize
  54. that many people will be disappointed, but I feel it is necessary to
  55. give an introduction describing how objects are defined and how the
  56. standard controls in the all of the editors are used. New users will
  57. GREATLY appreciate a description of the goals of the Detail Editor and
  58. how objects are defined and used in Imagine before delving into a
  59. description of the suboptions of each menu item. For those of you who
  60. are looking for a more hard-core Detail tutorial, none to fear! It's
  61. my next project, and it will should blend into a nice, logical
  62. successor to this tutorial. Even those who scoff at this introduction
  63. might want to read it anyway; there are a lot of subtle points
  64. (especially about pick and select!) that are well worth learning
  65. about.
  66.  
  67. This tutorial describes the Detail Editor in Imagine version 1.1. There
  68. are only minor differences (Taut and Fracture) from version 1.0.
  69.  
  70.                    An Introduction to the Detail Editor
  71.                          Last Revised 6/11/91
  72.                            By Steven Worley
  73.  
  74. -------------------------------------------------------------------------
  75.                    I.  What are Imagine objects?
  76. -------------------------------------------------------------------------
  77.  
  78. When a computer program wants to draw a 3D object, it must have some
  79. way of internally representing it. Some modelers store each object as
  80. a bunch of 2 dimensional polygons- a 3D object is a formed from a
  81. whole bunch of these polygons pasted together. A cube might be defined
  82. as six 2D squares arranged in a group. Since our final picture just
  83. has to LOOK like it is solid, defining the outer surface is usually
  84. all we need to do to make it seem as if the objects ARE solid.
  85.  
  86. Any object can be defined as a bunch of flat polygons. Curved surfaces
  87. like a sphere can use a lot of polygons in order to approximate the
  88. surface closely; certain computer tricks (including a very important
  89. one called Phong shading) can smooth out the surface even more. Most
  90. of the 3D objects, or models, that you've ever seen in any 3D computer
  91. graphic were defined as polygons. Sometimes advanced programs define
  92. surfaces with a mathematical equation, or by a certain type of curve,
  93. and sometimes a computer model will have certain objects it "knows"
  94. how they should look (like a mathematically defined sphere or cone)
  95. but most use polygons for definition, Imagine included.
  96.  
  97. All objects in Imagine are defined as a bunch of triangles. Nothing
  98. more.  It is particularly easy for a computer to decide what a
  99. triangle would look like when viewed as a 3D image. Any more complex
  100. polygon (like a square or octagon) can be broken down into a bunch of
  101. triangles pretty easily.  Having only one "shape" to deal with is
  102. actually a convenience for us, as we don't have to worry about
  103. questions of what type of polygons a certain object is made of, or how
  104. to convert one type of polygon into another. The computer likes
  105. dealing only with triangles because it can optimize it's renderer, the
  106. program that actually draws the pictures, to expect and deal with just
  107. one shape simple instead of 246 different ones.
  108.  
  109. Although an object is made of only triangles (called FACES) it has
  110. points and edges which define where these faces go. If you think of a
  111. simple triangle, it has 3 defining points at the corners, three edges
  112. connecting these points, and one face which actually makes up the body
  113. of the triangle. Imagine can better deal with the objects by defining
  114. these sub-parts, and it allows us to manipulate the objects much more
  115. easily.
  116.  
  117. Every object has a number of defined POINTS. Imagine understands an
  118. EDGE to be a line segment that connects any two of these points. A
  119. face is defined by naming the three edges that make it up. Instead of
  120. storing nine numbers for each triangle (the X,Y,Z location of each
  121. corner) it just names the edges, which in turn name the points. This
  122. reduces the size of a description of an object considerably. It also
  123. helps in editing objects, since if you move a point, each face that it
  124. is part of will adjust itself to the include the new location of the
  125. point. The other alternative would be to have each face manually
  126. manipulated individually, which is obviously a big pain.
  127.  
  128. Think of a square. Imagine would store a square as two triangles that
  129. share one edge together. The square would actually contain FIVE edges
  130. (the four sides and the diagonal) and FOUR points (one at each of the
  131. corners.) It would have two faces, or triangles.  A cube is stored as
  132. twelve faces, formed by eighteen edges, which are in turn defined by
  133. eight points.
  134.  
  135. This definition of objects actually gives us some extra leeway in how
  136. we define our model. Imagine doesn't require your object to be
  137. connected at all; that is, your object could be two completely separate
  138. surfaces that never touch. You might want an object to be a flying
  139. logo. The letters don't actually touch and form one solid object; they
  140. are independent from each other. Imagine doesn't care; you can call
  141. any collection of points, edges, and faces an object. Imagine also
  142. gives you tools for splitting off part of an object (like a letter) or
  143. joining two parts together.
  144.  
  145. Since this is a computer model and not a physical one, we can violate
  146. physics and have objects self-intersect. You might overlap two spheres
  147. half-way and join them together to form one object. You'll only see the
  148. outer surface when you render the new double-sphere object. 
  149.  
  150. There actually are two objects that Imagine does not define as a group
  151. of points, edges, and faces: a perfect sphere and an infinite plane.
  152. These are the only exceptions to the normal definition of objects in
  153. Imagine. Well, OK, there's another. An axis containing NO points can
  154. still be manipulated as an object. It certainly won't show up in a
  155. render, but sometimes it's nice to use a lone axis as an invisible
  156. object in certain cases. You can also use the axis as the start of a
  157. brand new object.
  158.  
  159. There are certain "Editors" in Imagine that allow us to view and
  160. manipulate objects in different ways. Some editors let you place
  161. objects in scenes, or define how the objects change with time. The
  162. Detail Editor is where objects are usually created and modified. It
  163. allows low-level editing of objects; you can add points and faces by
  164. hand, move them, delete old ones and in general be as picky as you
  165. like in adjusting every point.
  166.  
  167. Defining objects point-by-point is obviously not very suited to
  168. complex objects, sometimes with THOUSANDS of points. There are more
  169. powerful controls that let you modify your object in more global ways.
  170. You can add pre-made 'primitive' objects like a cylinder or a torus
  171. (doughnut shape.)  These primitive objects have the points, edges, and
  172. faces that define it already defined. There are certain tools that
  173. let you draw an outline, say the profile of a chess pawn, which is
  174. converted to a three-dimensional `spun' object, as if it was chiseled
  175. out on a lathe. Other tools let you slice off parts of your object
  176. using knives that you can build yourself. In general, object creation
  177. is done with these powerful tools, and picky touch-ups are the only
  178. time you grab and move individual points. A sculptor does not glue
  179. sand grains together!
  180.  
  181. -------------------------------------------------------------------------
  182.                II. Looking at Stuff in the Detail Editor
  183. -------------------------------------------------------------------------
  184.  
  185. The Detail Editor is the program that lets you manipulate and modify
  186. objects in Imagine. Like the other editors (and any Amiga program, for
  187. that matter) Imagine gets input and directions from you by either
  188. moving the mouse and clicking it's buttons, or by typing on the
  189. keyboard. Most advanced options use pull-down menus to select the
  190. function you want to perform. An important trick, especially when you
  191. start using Imagine a lot, is keyboard-equivalents. This lets you
  192. select menu items via the keyboard, by pressing the right Amiga key
  193. along with another letter or number. All of the keyboard equivalents
  194. can be selected via pull-down menus, although not all menu items have
  195. keyboard equivalents.  You'll find that learning the most used
  196. commands' keyboard equivalents can save a LOT of time. Its quick and
  197. easy to punch right-Amiga-o to zoom your view out; pulling the menu
  198. down repeatedly is a pain. A few other commands (especially moving,
  199. rotating, and scaling objects) use the keyboard to indicate what you
  200. want to do (move, rotate, or scale) while simultaneously using the
  201. mouse to control the extent of the transformation.
  202.  
  203. You can get into it from any point in Imagine by selecting the menu
  204. item 'Detail Editor' from the Project pull-down menu.  The screen
  205. should then split into four smaller windows with a thin status line at
  206. the bottom of the screen and another at the top.
  207.  
  208. When you start up the Detail Editor, you'll see what is known as a
  209. "Quad-View." Are four windows labeled "top", "front", "right", and
  210. "perspective", which are different ways of viewing the object you are
  211. manipulating. It is difficult to manipulate 3D objects with a 2D mouse
  212. and a 2D screen, and the tri-view is a compromise that makes the best
  213. of these unfortunate 2D restrictions.
  214.  
  215. The top, right, and front views show you the wire-frame skeleton of
  216. the object you're editing. A wire-frame is a view of your object with
  217. each edge shown as a line segment. Faces are NOT shown, so the object
  218. looks like it's built from pieces of wire that join at the outside
  219. edges of the object, hence the name wireframe. Wireframes have two
  220. advantages; they are much faster to draw than "solid" models, and
  221. since you can see _into_ the object, you can manipulate points and
  222. edges on the interior of the object that you wouldn't normally see.
  223.  
  224. The top, right and front views are just that- a wireframe view of your
  225. object shown from the three orthogonal (right angle) directions. There
  226. is also a small axis at the bottom left corner of each view that shows
  227. the world's X,Y,Z coordinate system. In Imagine, the X,Y,Z is defined
  228. just like it is in mathematics- X is left to right, Y is in to out,
  229. and Z is down to up.  Some 3D programs define Z to be in-and-out, so
  230. note Imagine's difference. 
  231.  
  232. There is an absolute "world" coordinate system defined by these axes.
  233. You can select "Coordinates" from the Display menu, which will
  234. continually display the coordinates of the mouse pointer in the
  235. world's X, Y, and Z system. The units that it measures in are
  236. arbitrary, but it is often convenient to call them "Imagine Units."
  237. Objects tend to be on the order of 10 to 100 Imagine Units in size,
  238. since this is a comfortable scale to deal with when we design
  239. scenes to be rendered.
  240.  
  241. There is a grid shown in the three main windows. This grid is used to
  242. give you a sense of scale, and can be turned on or off in the Display
  243. menu.  The spacing between the lines can be set by choosing "Grid
  244. Size", also from the Display window. The default is 20, which is a
  245. reasonable starting size. Some commands let you use the grid to snap
  246. objects to precise locations- these are the most common reasons you
  247. want to change the grid size.
  248.  
  249. The fourth window (with no grid in it) is called the "perspective"
  250. window, which allows you to view your object from any direction. You
  251. can also change modes to view your object as a wireframe or as a
  252. "solid" model, where the faces become opaque so that you cannot see
  253. through your object. In this window, you CANNOT manipulate your
  254. objects- it is a view only.
  255.  
  256. Each of the four windows can be quickly zoomed to take up the full
  257. screen very easily by merely clicking on the tall narrow box to the
  258. left of each view that contains the name of the window. The window
  259. will expand to take up the entire screen, allowing you to have a
  260. better view of whatever you're working on. To zoom back to the
  261. quad-view, just click on the name to the left again. To go immediately
  262. from a full screen display of one view to a full screen display of
  263. another, you just click the name of the new view to the right. Being
  264. able to see all four views at once is often an advantage, but so is
  265. seeing a larger, more detailed view. This method allows you to quickly
  266. and easily change how you look at your model.
  267.  
  268. Just to get a sense of how this works, pull down the menu item
  269. 'Functions' and select 'Add primitive'. Click on the 'Torus' button
  270. and click on 'OK' to accept the default parameters. All this did was
  271. make a pre-defined object that we can look at when we manipulate the
  272. views. 
  273.  
  274. You should see an object in all four of the windows. This is the same
  275. object, just viewed from different directions. Remember the three main
  276. views (Top, Front, and Right) all show a WIREFRAME view from their
  277. respective directions, so the inside of the doughnut might look very
  278. complex.
  279.  
  280. Perspective, the remaining view, also shows a wireframe view of the
  281. doughnut. You can change the view by manipulating the two white
  282. sliding boxes on the top and left of the window. The bottom white
  283. slider lets you view from different directions AROUND the object. If
  284. the slider is in the middle, you're looking at the front. If it's 3/4
  285. of the way to the right, you're looking at the right hand side, and if
  286. it's all the way in either direction, you're looking at the back. The
  287. vertical slider on the right controls the ANGLE you're looking at the
  288. object from. Centered is a level perspective, all the way up gives you
  289. a straight-down view, and all the way down gives you a straight-up
  290. view.  By combining these two sliders you can look at your object from
  291. any direction.
  292.  
  293. You can change the perspective view by selecting 'wireframe' or
  294. 'solid' from the Display pull-down menu. Solid takes longer to show
  295. your object, but removes the points that are hidden, getting rid of
  296. the X-ray wireframe view. A final way of changing the perspective view
  297. is by selecting 'shaded' from the Mode pull-down menu and zooming the
  298. perspective view to the full screen. This shades the object in false
  299. black and white colors which sometimes lets you see the shape of the
  300. object more clearly.
  301.  
  302. There are a few commands that let you change your absolute vantage of
  303. your object.  You can zoom your view (on all windows) in and out by
  304. using 'zoom in' and 'zoom out' from the View menu. This lets you see
  305. more of your object at once, or just a certain portion. Each zoom in
  306. or out will double or halve the scale respectively. You can also
  307. select a numerical zoom by selecting 'set zoom' in the View menu,
  308. which allows more precise magnification levels by simply typing in a
  309. number. Zoom in and zoom out are often used, so knowing the keyboard
  310. equivalents of right-Amiga-i and right-Amiga-o can save a lot of time.
  311.  
  312. To scroll the views around, you can click in one of the three main
  313. views, then use the arrow keys to move the view in whatever direction
  314. you like. You'll notice that if you change one view, the others will
  315. change as well- all of the views are linked so they show the same
  316. volume of space. You can also scroll the view by telling Imagine where
  317. you want the view centered. You select 'Re-center' from the View menu
  318. and click on where you want the new center of your view to be. Usually
  319. you click right in the middle of the object or area you're interested
  320. in. The keyboard equivalent of right-Amiga-. (period) is very
  321. convenient.
  322.  
  323. The display that Imagine shows you is very important, as it is your
  324. interface in dealing with everything in the program. One important
  325. option is found in the Display menu; it is called "interlace".
  326. Interlace will change the screen resolution which the display uses. An
  327. interlaced screen is 400 pixels high, whereas a non-interlaced screen
  328. is only 200.  Unfortunately, the interlaced display will flicker on
  329. many Amigas. An Amiga 3000 or a "flicker-fixer" equipped Amiga will be
  330. able to use interlaced mode without the flicker. The interlaced mode
  331. allows much more detail and more precise location of points, so it is
  332. by far the preferred mode to work in. Even if you do have a flickering
  333. display, it is probably worth the annoyance to have the extra
  334. resolution.
  335.  
  336. A couple ways to reduce the flicker if you have it: you can muck with
  337. the monitor's contrast and brightness, or you can change the screen
  338. colors using the imagine.config file (see my Project tutorial). My
  339. favorite solution is wearing sunglasses- it works very well indeed,
  340. and you look cool while using your computer.
  341.  
  342. -------------------------------------------------------------------------
  343.                III. Moving Stuff in the Detail Editor
  344. -------------------------------------------------------------------------
  345.  
  346. Knowing how to move your views around is important, as when you're 
  347. manipulating an object you'll find yourself changing your viewpoints
  348. around constantly. There is a whole new set of commands for moving
  349. the OBJECTS in the editor around. 
  350.  
  351. In order to manipulate an object, we either have to load an existing
  352. one or start one from scratch. Imagine comes with several simple
  353. pre-built objects called 'primitives' that are very convenient to use
  354. as starting points for creating your own objects. Talking about these
  355. primitives doesn't really belong at this point in the tutorial, but 
  356. it would be nice to be able to have something to look at and manipulate
  357. as each of the viewing and manipulation commands are presented.
  358.  
  359. To make a primitive object, select 'add' in the Edit menu, and
  360. 'primitive' in the sub-menu. There are six simple shapes that Imagine
  361. will automagically create for you. They are a sphere, a cylinder, a
  362. cone, a disk, a plane, and a torus. When you select one, Imagine will
  363. ask how many points the object should have.
  364.  
  365. With primitives like a sphere, the more points that define it, the
  366. smoother its appearance is going to be when rendered. Remember that
  367. even curved surfaces are made from triangles, and the surface becomes
  368. better defined with each point added. However, an object with more
  369. points than are necessary can become a burden; drawing the object in
  370. the editor takes more time, and although the final rendered picture
  371. with be higher quality with extra points, it will also take longer.
  372. Thus, when you add new primitive objects, Imagine asks what level of
  373. detail you would like.
  374.  
  375. For example, the sphere primitive asks how many circle sections and
  376. how many vertical sections will make it up. The default is a
  377. reasonable number of defining points. If you were looking for a higher
  378. quality sphere because you were going to zoom in very closely to it,
  379. you might use extra points. If the object is going to sit in the
  380. background and not be examined closely, you might select fewer points.
  381. Most of the time, the defaults serve as a nice compromise, but you are
  382. much more likely to simplify the object as opposed to increase the
  383. default level of detail. The plane primitive in particular lends
  384. itself to simplification- most of the time you can bear with defining
  385. the simplest plane possible (2 triangles) as opposed to the
  386. overburdened default of a grid of 200 triangles.
  387.  
  388. Each primitive lets you define the numbers of points that define it;
  389. the parameters that you can vary are all pretty self-explanatory.  For
  390. example, the cylinder lets you define how many points are to form the
  391. circle around the rim, and also how many sections the body of the tube
  392. should be defined as.  Other options (available for some primitives)
  393. are simple flags that define whether to close the ends of the cylinder
  394. (to create a hollow tube versus a log) or to 'stagger points' in some
  395. models. Staggering points increases the smoothness of curves- you
  396. should almost always leave it on.  Note that the disk and the plane
  397. are actually flat objects- the others all have depth. All objects also
  398. let you define their size; this is quite straightforward.
  399.  
  400. When you have loaded an object or added a primitive, you'll notice
  401. that you can see each point and edge in the wireframe. In addition,
  402. you'll see an AXIS, usually near the center of the object. In Imagine,
  403. EVERY OBJECT HAS IT'S OWN INDEPENDENT AXIS. An object's axis helps
  404. Imagine determine which way an object is facing, how it is scaled, and
  405. even what it's position is. Imagine doesn't understand what the
  406. objects ARE; it doesn't realize that a complex object like an airplane
  407. should orient itself with wheels down instead of balanced sideways on
  408. a wingtip.  The axis actually defines the object's position; if you
  409. ask Imagine to move an object, Imagine really just moves the axis, and
  410. the object's points, edges, and faces are dragged along with it. When
  411. you rotate an object, the rotation occurs around the object's axis, as
  412. opposed to the world's absolute reference system. Scalings, where you
  413. change the size of the object, also use the object axis as a basis.
  414.  
  415. When you want to manipulate a certain object, you have to tell Imagine
  416. which one (or ones!) that you're interested in, since you might have a
  417. dozen different object loaded at once. The way of choosing an object
  418. so you can manipulate it is just by clicking on it's axis. The object
  419. will turn a pretty blue color (or sometimes purple- more later!) which
  420. indicates that the object is chosen- any manipulation commands will
  421. be done on this one object. The object is said to be "picked", and
  422. Imagine knows that you want to apply commands to this object as
  423. opposed to another.
  424.  
  425. Once you've picked an object, the most common manipulations are to
  426. move it around, rotate it, or scale it. These basic commands are often
  427. used, so Impulse has made it pretty easy to do. When you have a
  428. selected an object, you type the letter 'm' for move. The object will
  429. disappear (!)  and be replaced by a big yellow "bounding box" which
  430. encloses the volume where your object was. This bounding box
  431. represents the size, shape, position, and orientation of your object.
  432. Since the box is so simple to draw, Imagine can update it in realtime
  433. as you manipulate it, allowing you to position it quickly and easily.
  434.  
  435. After selecting the object and pressing "m", Imagine knows you want to
  436. move the object. Putting the cursor in any of the three main views,
  437. pressing the left mouse button and then dragging the mouse will drag
  438. your object in the direction you move. You do not have to click on the
  439. yellow box; anywhere in the view is fine. You can keep moving the
  440. object as long as you like; you can let go of the mouse button, move
  441. the pointer to another position in any of the three views, and
  442. continue moving the object. You are also welcome to zoom in and out,
  443. make one view full-screen, or re-center your views at any time. When
  444. you are finally done moving your object, pressing the space bar will
  445. accept the change and your object will be displayed as a wireframe in
  446. it's new location.  If you've made a mistake, you can press the ESC
  447. key instead of the space bar. This also exits the move mode, but the
  448. object's position is unchanged from where it was before you started to
  449. move it. This is obviously useful for fixing mistakes or changing your
  450. mind.
  451.  
  452. Two other commands work much like move: rotate and scale. If you
  453. select your object and press "r", you will rotate your object, and
  454. you'll see the yellow bounding box spin as you drag the mouse with the
  455. button down.  You can also change spin axes (to pitch or bank the
  456. object, as opposed to yawing it) by pressing "x", "y", or "z" to
  457. define which axis you want to rotate around. All rotation is done
  458. around the OBJECT'S axis.
  459.  
  460. Scaling is done by selecting "s" and dragging the mouse. Again,
  461. scaling is done relative to the OBJECT's axis. If the axis is in the
  462. center of the object, the object will grow in all directions. If it is
  463. at the bottom, the object will grow up and out, but not down.
  464.  
  465. Each of these three commands (move, scale, and rotate) can be called
  466. either when you've picked an object or during any other move, scale,
  467. or rotate command. For example, you might pick an object, press "m"
  468. to move the object, position it in a new place, press "r" to spin it,
  469. then "s" to scale it. You do not have to press the space bar after
  470. every change; only after you are finally satisfied with the new
  471. location, size, and orientation of your object do you want to press
  472. the space bar to accept the changes you've made.  Aborting by using
  473. the ESC key will remove all of the changes (movements, rotations, and
  474. scalings) that you've made.
  475.  
  476. These manipulation commands are easy to use, and they have other
  477. controls that make certain manipulations even easier. At the bottom of
  478. the screen, there is a status bar that will highlight which mode
  479. you're in. If you are moving, the "M" in the "M=Move" at the bottom
  480. of the screen will be highlighted, and the "R" and "S" highlight when
  481. you're rotating or scaling.
  482.  
  483. The "x", "y", and "z" commands that allow you to change rotation axes
  484. also work in moving and scaling. They act in these two modes as
  485. toggles- when you start a move, you are free to move it in all three
  486. directions, X, Y, and Z. You might want to restrict a direction of
  487. motion, though, if for example you are moving a table along a floor
  488. and you didn't want to accidentally lift the table into the air as you
  489. moved it left and right. Pressing the "x", "y", and "z" keys will
  490. toggle the allowable directions on and off, so pressing "z" will
  491. anchor the table's height, and pressing "z" again will allow you to
  492. lift it up if you change your mind. This also works in the scaling
  493. mode; if you want to make an object narrower without changing its
  494. height, you might toggle "z" and scale the object down. With the "z"
  495. toggle off, the object will maintain it's Z height, but will shrink in
  496. the X and Y directions.  At any time, the display at the bottom of the
  497. screen shows the letters "X-Y-Z" and highlights the directions that
  498. are "active" or changeable.
  499.  
  500. A related shortcut is using the capital letters "X", "Y", and "Z",
  501. which set the toggles to allow movement and scaling in one direction
  502. only.  If you wanted to lift a table straight up, you just type "Z"
  503. and the table will be free to move up and down, but not in the X or Y
  504. directions.  This method of setting the toggles overrides whatever
  505. position they were set in before, but you can use the individual
  506. toggles afterwards to set whatever freedoms you like.
  507.  
  508. Imagine gives you even more flexibility if you want to use it.
  509. Whenever you move, rotate, and scale an object, it is based on a
  510. certain coordinate system. The default is to use the standard
  511. coordinate system- the set of axes that is fixed in place and shown at
  512. the bottom left of the three main views. This is called the "world"
  513. coordinate system.  However, each object has it's own "local"
  514. coordinate system, defined by it's own axis. Imagine allows you to use
  515. a local coordinate system instead of the world system if you like.
  516.  
  517. For example, if you have an object in the shape of a plane, the local
  518. coordinate system probably has the Y axis (going front to back) in
  519. line with the main fuselage of the plane. Using "r" to rotate the
  520. plane, you can easily position it so that it is angled up like it is
  521. climbing into the sky. If you then wanted to move it in a straight
  522. line along it's "flight path", the direction it's pointing, you could
  523. select move, and try to judge by eye the new position in the direction
  524. in front of the plane. If, instead, you select local mode (by using
  525. "l") and restrict motion along the Y direction by typing "Y", the
  526. plane will move smoothly along the line it's pointed along. In the
  527. world coordinate system, it's moving in both the Y and Z directions,
  528. but in it's local coordinate system, it's moving only in it's Y
  529. direction.
  530.  
  531. To switch between coordinate systems, you just type "l" and "w"
  532. whenever you want to change. The current coordinate system has L or W
  533. highlighted at the bottom display just like the X-Y-Z indicators.
  534. Many times the local and world coordinate systems will be the same, so
  535. one is equivalent to the other.
  536.  
  537. One final option when you're manipulating objects allows you to
  538. manipulate the axis of the object independently. If you want to move,
  539. scale, or rotate an object's axis [without simultaneously affecting
  540. the object!] you can use "M", "R", and "S", the capital letter
  541. versions of the object manipulation commands, to affect only the axis.
  542. There are some occasions you might want to do this for fancy tricks,
  543. but most of the time, you just want to move the axis around just so
  544. that it lies near the center of your object.
  545.  
  546. The standard commands to move, rotate, and scale objects have been
  547. streamlined for ease of use since they are performed so often.
  548. Sometimes, however, they are somewhat lacking, especially when you
  549. need precise control over how your object is to be manipulated. For
  550. the precise control of object manipulation, Imagine has a special
  551. command called "Transform" which allows you to numerically control
  552. your object as opposed to judging by eye.
  553.  
  554. The transform command works much like the standard interactive
  555. commands in that you first select your object (by clicking on it's
  556. axis) and then telling Imagine what to do to it. To enter the
  557. transform command, you click on the object (it becomes blue or purple)
  558. and pull down the menu item "transform" from the Object menu. A small
  559. requester will appear. You have six options you can choose from:
  560. translate, rotate, scale, position, alignment, and size. You also
  561. enter X, Y, and Z arguments.
  562.  
  563. Translate takes the X, Y and Z arguments and moves (translates) the
  564. object that distance.
  565.  
  566. Rotate will rotate the object around the axis you specify by an amount
  567. (in degrees) you specify in X, Y and Z. Performing more than one
  568. rotation at once is legal, but it is easy to make mistakes in final
  569. orientation. If you rotate around more than one axis at once, the Z
  570. rotation is performed, then the X rotation, then the Y rotation.
  571.  
  572. Scale will scale your object by a certain factor. To double the size,
  573. just enter 2 in each of the X, Y, and Z boxes. A negative number is
  574. completely legal, and if one or three of the scalings is negative,
  575. you'll actually get a scaled mirror image of your original object.
  576.  
  577. Position is like Translate in that it moves your object. Instead of
  578. moving a certain distance, however, it moves to absolute world
  579. coordinates.
  580.  
  581. Alignment is also absolute; it will rotate your object in whatever way
  582. necessary to align in the direction you specify, regardless of the
  583. original orientation. Setting X, Y, Z all to zero will make the object
  584. line up exactly with the world axes.
  585.  
  586. Size is again absolute. It uses the axis size as a benchmark, and will
  587. scale the object (and it's axis) to an absolute size. The "default"
  588. size that all axes start out at is 32 Imagine Units, so entering an
  589. XYZ size of 32 32 32 will bring most objects back to their virgin
  590. sizes.
  591.  
  592. To use any of these sub-commands, just click on the box next to it's
  593. name and type in the appropriate X, Y, and Z arguments in the boxes to
  594. the right. Selecting "OK" will perform the manipulations, "cancel"
  595. will abort without affecting your object.
  596.  
  597. You have the option to use world or local coordinates, just as in the
  598. interactive commands; just click on either box to decide. The default
  599. is the world system. You can also manipulate only the axis (like the
  600. capital letter commands in interactive manipulation) by selecting
  601. "transform axis only."
  602.  
  603. Most manipulations use the interactive controls, and the
  604. transformation requester is used only for accurate, measured changes.
  605.  
  606. One problem that you may run into after an interactive or a
  607. transformed manipulation is a "dirty" screen. Imagine erases the old
  608. object from before your move or scale or rotate, and draws it in the
  609. new position. However, to save time, it will not redraw any other
  610. wireframe object that was in view. This means that the areas were the
  611. old object intersected any other object in the view will be blank;
  612. part of the other object will be erased. If you want to check to see
  613. if this is the case, you can select "Redraw" from the Display menu,
  614. which will redraw all of the objects, eliminating the problem.  One
  615. case where this is almost necessary is when you have multiple copies
  616. of an object at the same place. If you move one copy, the other isn't
  617. redrawn. Since it was in the exact same location as the old, erased,
  618. object, it looks like it has disappeared!  This is easy to fix with
  619. redraw. It is another oft-used command, so knowing the keyboard
  620. equivalent of right-Amiga-r is handy.
  621.  
  622. A problem you'll run into when manipulating complex objects is the 
  623. sheer time it takes to redraw the wireframe model (in three views).
  624. Imagine has a way to speed the display of these objects- it shows
  625. the bounding box of the object (like the one shown in interactive
  626. manipulation) instead of the wireframe. You LOOSE the detailed view
  627. of your object, but you can still see the position, size, and
  628. orientation. To make an object "quickdraw" in this mode, you can
  629. use three commands in the Functions menu. "Quickdraw all" will make
  630. all of the objects display in quickdraw mode. "Quickdraw none" will
  631. make all objects display the normal wireframe. "Quickdraw pick" will
  632. make your picked (blue or purple highlighted) object display in
  633. quickdraw mode. These quickdraw boxes are very handy, and since
  634. they can be toggled at any time in the Detail Editor, it makes sense
  635. to use them when screen updates start to get too slow.
  636.  
  637.  
  638. -------------------------------------------------------------------------
  639.                IV. Harvesting and Sorting with Pick
  640. -------------------------------------------------------------------------
  641.  
  642. Since you can have many objects loaded at once, there has to be a way
  643. for you to tell Imagine what object or objects you want to deal with.
  644. You've done this already, by clicking on an object's axis, and
  645. watching it turn color. This shows that the picked object is ready to
  646. be manipulated on.
  647.  
  648. What if we want to manipulate more than one object at a time? A
  649. standard way to "multi-pick" things (like icons in AmigaDos, or
  650. objects in Imagine) is to use the shift key. By holding the shift key
  651. as you click on objects, Imagine knows you want ALL of them picked,
  652. not just the latest one. In fact, if you press the shift key, the
  653. display line at the top of the screen will change to show how many
  654. objects are picked. Commands will affect all of the picked objects,
  655. not just one. In the case of moving, scaling, and rotating more than
  656. one object, the FIRST picked object's axis defines the basis of all
  657. the manipulations, as well as the local coordinate system for
  658. manipulating all of the objects.
  659.  
  660. There are easier way to pick many objects than by repeatedly clicking
  661. on each object's axis. Imagine allows you to change how objects are
  662. picked by the "Pick Method" submenu in the Modes menu. The default is
  663. "click", which means that when you click directly on an object's axis,
  664. it will become picked.  Other methods of picking can be chosen from
  665. the pick method submenu. If you use "drag box", instead of clicking on
  666. the object axes, you should press and hold the mouse button while
  667. dragging the mouse. A large box will follow your mouse, and when you
  668. release the button, an object within the box will become picked. If
  669. you press and hold the shift key when you release the mouse button,
  670. ALL of the objects within the box will become picked.
  671.  
  672. Lasso is similar, but more versatile. You press and hold the button
  673. while drawing a large circle or oval or squiggly shape. When you
  674. release the button, an object within the region you've drawn will
  675. become picked.  Again, you can hold the shift key to pick ALL of the
  676. objects within.
  677.  
  678. A final option in the pick method submenu is called "Lock". Lock isn't
  679. a method of picking; it really has more to do with when moving picked
  680. objects. Lock is a flag; you can toggle it on and off by selecting it
  681. from its submenu. When Lock is on, any moved object will snap to the
  682. nearest grid location when released. This is automatic and is easier
  683. than using the one-time "Snap to Grid" (described later, I promise!)
  684. again and again when you're trying to get precise placement.
  685.  
  686. Two other utility commands can be found in the Pick/Select menu.
  687. "Pick all" will pick ALL of the objects in your workspace. "Unpick
  688. Last" will allow you to remove the last object you picked from your
  689. set of picked objects. This is handy when you pick one too many
  690. objects and you want to unpick the last one you chose.
  691.  
  692. It is easy to pick objects or sets of objects using the different pick
  693. methods. There is actually another powerful way to change what object
  694. or objects are picked; it is called "select."  There is a very, very
  695. important difference between a "picked" object and a "selected"
  696. object; you've been using pick to highlight objects and manipulate
  697. them. Select is sort of a pick-wanna-be.
  698.  
  699. One problem that can occur is when two object axes are directly on top
  700. of each other. If you click on the common axis location, one of the
  701. objects will become picked. (The first one that was created or loaded
  702. into the Editor). If you click again, the same object will remain
  703. picked and the second object will just sit there.  If you hold the
  704. shift key and click on the common axis again, the second object WILL
  705. be picked, but now BOTH objects are picked. If you want to pick just
  706. the second object and not the first, you can either MOVE one object
  707. just to uncover the other axis, or you can use select.
  708.  
  709. There is a solution when picking (or unpicking) objects becomes
  710. awkward (or impossible!). SELECT allows you to control what objects
  711. are picked by allowing you to add and remove objects from your set of
  712. picked objects one at a time.
  713.  
  714. Think of buying lunch at a cafeteria, and you pick which food you want
  715. to eat. One way of "picking" food to add to your tray is by having the
  716. lunch worker point to each of the cafeteria's food bins, and saying
  717. "No, the next one, the next one, the next one- yes! That one!"  as the
  718. worker points to the foods in turn.  As the worker selects item after
  719. item, you can choose to PICK the item he's pointing to at any time.
  720. The analogy extends; What if your arms are full of cafeteria food and
  721. you want to put some back? Your arms are busy holding all the food;
  722. you can't easily grab an item and put it down.  You can, however, ask
  723. a friend to "unpick" the item for you.  If your friend has trouble
  724. with big words (like the names of food), he can just point at each
  725. food in your arms in turn until he points to the granola yogurt you
  726. want to put down. You then say "Yes, yes! Get rid of that!"
  727.  
  728. This is exactly what select allows you to do. Your arms are full with
  729. picked objects. You can't just click on an object to "unpick" it
  730. because Imagine thinks you're just making sure you have it picked. You
  731. also might have problems indicating the right object to pick, as in
  732. the case of two objects on top of one another. The major difference
  733. between the the cafeteria and Imagine is that your mentally challenged
  734. friend is also the cafeteria worker, and will point to both types of
  735. objects for you.
  736.  
  737. Select works by allowing you to highlight different objects in a
  738. controlled way. A "selected" object might be picked or not; A normal
  739. object is white, a selected object is orange, a picked object is blue,
  740. and a picked AND selected object is purple.
  741.  
  742. Only one object is ever be selected at once, which is helpful in
  743. reducing confusion. The commands for selecting objects are completely
  744. different from those of PICKing objects; the whole point of select is
  745. that sometimes the methods used to pick objects are awkward, and
  746. select gives you an alternative way to pick them.
  747.  
  748. The easiest and most common method of selecting an object is by using
  749. two commands, "Select next" and "Select previous", both found in the
  750. Pick/Select menu. Using "Select next" repeatedly will cycle through
  751. all of the objects in the order that they were created or loaded.
  752. This command does NOT care whether the object is picked or not; it
  753. will select all objects one at a time. "Select next" is often a
  754. command you want to repeat, so knowing the keyboard shortcut of
  755. right-amiga-n is almost necessary.  By repeatedly using select next,
  756. ANY object can be selected because Select next will eventually reach
  757. it. "Select previous", right-amiga-p, will select objects in the
  758. opposite order, in case you overshoot with select next.  One
  759. convenience is that when an object becomes selected, your view will
  760. jump to center the object on the screen, always allowing you to see
  761. what you just selected.
  762.  
  763. When an object is selected, there are certain commands that will cause
  764. it to become picked or un-picked. The most common command is called
  765. "pick select", which can be found in the Pick/Select menu. When you
  766. use this menu option, the selected object will become picked. If the
  767. selected object is picked and you want to un-pick it, you can use
  768. "unpick select" from the pick/select menu to unpick it.
  769.  
  770. "Select next" is kinda klunky, especially if you know exactly what
  771. object you want to select. One quick command that is sometimes useful
  772. is "Home", which selects the very first object you created or loaded
  773. into the Editor.
  774.  
  775. Two other useful commands to quickly select specific objects are "Find
  776. by Name" and "Find requester", both found in the Functions menu. "Find
  777. by Name" allows you to type in an object's name (assigned in the
  778. Attributes requester, more later) and your view will shift to center
  779. on the object you named. In addition, the object becomes selected,
  780. allowing you to pick-select or unpick-select it. The "Find by
  781. Requester" does the same thing except it displays the names of all of
  782. the currently loaded objects, and you just click on the name you want
  783. to select. This requester is also useful because it tells you the size
  784. (# of points, edges, and faces) of each object, which is an excellent
  785. judge of object complexity. It's also fun to say "Cool! My tomato has
  786. 1,821 points!"
  787.  
  788. -------------------------------------------------------------------------
  789.                    V. Hierarchies and Complex objects
  790. -------------------------------------------------------------------------
  791.  
  792. With complex models, sometimes you don't want to make one huge, mungo
  793. object to represent the entire model. You might want to make a forest
  794. object that has 20 trees in it, and it seems silly to carve the whole
  795. thing out of one block. Or, you might be building an object that is
  796. logically a bunch of separate parts, like a clock with a face, a
  797. pendulum, two hands, and a frame.
  798.  
  799. Another important ability you might want is to be able to give
  800. different parts of a complex object different attributes, or colors.
  801. Imagine lets you color and define the look of your objects in
  802. different ways, and you can even tell it to make different parts of
  803. the same object look different. But when you're building something
  804. like a window, the glass panes are considerably different than the
  805. wood frames; it is easier to define each as a separate object then
  806. somehow group them together.
  807.  
  808. There is a function that lets you do exactly this- group objects
  809. together.  When you have a model that you want to make (and keep!) in
  810. separate sections, Imagine allows you to establish a group of objects
  811. which will stay together. It allows you to treat the group as an
  812. entire ensemble (if you want to move everything, or apply a command to
  813. the whole set), or you can pick out one particular object and deal
  814. with it independently.
  815.  
  816. Grouping is very easy to do. If you want to group two objects
  817. together, you click on one object, then press the shift key and click
  818. on the other.  Remember that this is just the method of picking more
  819. than one object at once. When you have multi-picked the objects, you
  820. select "group" from the Object menu. A purple line will appear joining
  821. the axes of the objects.  The first object that was selected becomes
  822. the "parent" of the group.  If you group more than two objects, the
  823. purple "group" lines all run from each "child" object to the parent
  824. object. This lets you see which axis to click on to pick the entire
  825. group. Sometimes it is nice to assign a lone axis as the parent of a
  826. group, especially when no part of a group really doesn't lend itself
  827. to being a parent.
  828.  
  829. Splitting a group back into it's component parts is also easy; just
  830. pick the group by clicking on the parent. The entire group will become
  831. picked, and selecting "Ungroup" from the Object menu will split the
  832. group. The purple joining lines will disappear, and each child will
  833. be independent again.
  834.  
  835. Once a group is made, it can be treated almost identically to an
  836. ungrouped object. You can pick it (by clicking on the parent) and the
  837. entire group will become highlighted. You can then move, scale, or
  838. rotate the entire group as a whole. If you click on a CHILD object,
  839. the child will be picked, but not the group. You can then move, scale,
  840. or rotate it independently of the group, assign it individual
  841. attributes, or perform a command on it independently of the rest of
  842. the group. Even when you move the child object around, it will STAY
  843. grouped; you must use "ungroup" to ungroup objects. There are modes
  844. where you can pick parents separate from their children; this is
  845. described in the next section.
  846.  
  847. In addition, you can make groups of groups. Or groups of groups of
  848. groups. This is done exactly the same as before; you can pick one
  849. group, multi-pick a second, and group them. Having these multi-layer
  850. groups is sometimes very useful. One excellent example would be in
  851. modeling a human figure. You might make a finger group that contains
  852. all of the knuckles, a hand group including a palm, four finger
  853. groups, and a thumb group, an arm group consisting of a hand group, a
  854. wrist, a forearm, and an elbow, and a body group consisting of a head
  855. group, a torso, two leg groups, and two arm groups. This kind of
  856. nested grouping is called a "hierarchy", where the body is the
  857. great-granddaddy of a knuckle. One great advantage is obvious when you
  858. want to move an arm.  You pick the arm, and rotate it around the
  859. shoulder. All of the arm's children follow it, so the arm moves as a
  860. whole. You do NOT have to move 15 knuckles, a palm, a wrist, a
  861. forearm, and so on. If you want to adjust a finger, you can manipulate
  862. it and the knuckles will move together, but the arm will be
  863. unaffected. If you move the main parent body group, everything follows
  864. along as if the body were just one solid object, as opposed to dozens
  865. of parts. Hierarchies are obviously suited for complex models.
  866.  
  867. Groups are useful when you have sub-parts of an object you want to
  868. keep together. Sometimes grouping simple objects is still useful even
  869. if there is no hierarchy to follow, since the individual objects are
  870. free to move apart from the parent, and can easily be assigned different
  871. attributes.
  872.  
  873. For example, if you're designing a human face, you might cause the
  874. eyeballs in the head to be an additional grouped object as opposed to
  875. just molded into the main face. Later, if you wanted to change the eye
  876. (make it a different color, or replace it with a different type of eye
  877. (chrome eyeballs!  Cool!)) you can easily select the eye and change or
  878. replace it. This advantage compounds the other advantages of grouping;
  879. you can later animate the eyes looking in different directions, and
  880. you can easily change the attributes or texture of the eye while
  881. leaving the face undisturbed.
  882.  
  883. -------------------------------------------------------------------------
  884.        VII. Pick, Add, Drag.  Pick, Add, Drag. Geez, how boring!
  885. -------------------------------------------------------------------------
  886.  
  887. There are some useful commands that act on picked objects other than
  888. just moving, rotating, and scaling. Two of the most obvious are "Load"
  889. and "Save". Load will load a new object in from disk- it will give you
  890. a file requester which you can choose the filename from.  The most
  891. common place to put objects are in your "objects" subdirectory in your
  892. project directory.See the Project Editor tutorial for the complete
  893. Imagine file structure.
  894.  
  895. Am important suggestion; use descriptive names and extensions. I
  896. talked about this a lot in my Project tutorial, but it's worth
  897. repeating. "Obj1" is going to mean nothing to you an hour from now.
  898. "tablecloth.iob" tells you that this is an Imagine object of a
  899. tablecloth- a useful description. Some suggested file extensions:
  900.  
  901.  .iob    Imagine Object. Loads into the Detail Editor 
  902.  .iout   Imagine Object which is a faceless outline
  903.  .ifm    Imagine Form. Loads into the Form or Detail Editor
  904.  .iff    Amiga picture or brush  (standard)
  905.  .ham    Amiga picture or brush in Hold-And-Modify format
  906.  .iff24  24-bit Amiga picture of brush. Highest quality.
  907.  .spth   Imagine spline path
  908.  .lpth   Imagine line path
  909.  
  910. Save will take the picked object or group and save it onto disk.
  911. Note that GROUPS will save as one big group, as long as you have the
  912. whole group picked by clicking on the parent. You can give the saved
  913. object or group any name you want, and you'll probably want use an
  914. extension of ".iob". If you pick a child of a group and save it, 
  915. you save ONLY that object (and its children), and NOT the entire group
  916. it belongs to.
  917.  
  918. Another command you can apply to picked objects is "Snap to Grid" from
  919. the Functions menu. It operates on all picked objects, moving each of
  920. them so that their axis lies on top of the nearest grid intersection.
  921. This is very useful in trying to line up objects or for precise
  922. positioning. This is much like a one-time "Lock".
  923.  
  924. There are a few other utility object commands. "Cut", "Copy", and
  925. "Paste" are found in the Object menu. "Cut" will remove your object
  926. from the Imagine world and store it in memory. When you select
  927. "Paste", the object will be re-inserted into the world at the same
  928. place it was prior to the cut. In fact, the object is STILL retained
  929. in memory, so you can move the restored object around and use "Paste"
  930. again to get a second copy to manipulate.  You can repeat "Paste" as
  931. many times as you like to get copies of objects. "Copy" is like cut,
  932. except the object is not removed from the world after being copied to
  933. memory. You can use "Paste" to add multiple copies to the world.
  934.  
  935. Since the pasted objects are all put in the same location, often
  936. you'll have to move one copy to get to the next. Judicious use of
  937. "Redraw" can help in showing exactly what copies are still floating
  938. around.
  939.  
  940. An incredibly useful command for making complex objects is called
  941. "Join", which can be found in the Functions menu. If you pick two or
  942. more objects, join will assemble them into one single object. The
  943. new conglomerate object will have use the axis of the first object
  944. that was picked, and will contain all of the points, edges, and faces
  945. of all of the joined objects. Joined objects are difficult to 
  946. unjoin later, so only use it when you WANT a solid object. Join
  947. is used constantly- you might build a car with the body sides, and
  948. "join" on a side mirror, then join the  roof on, then join the floor. 
  949. Remember the advantages of groups though; you probably DON'T want
  950. to join the tires to the car; if you group them you can rotate them
  951. later, as well as define the chrome hubcap separately from the car's
  952. paint and the rubber tire.
  953.  
  954. "Merge" is also found in the Functions menu. It is more of a utility
  955. command. It will remove any duplicate faces, edges or points in your
  956. object. Especially after you JOIN objects, you might have a lot of
  957. points lying on top of one another. Merge removes these extra,
  958. unneeded points, speeding rendering and even display in the editors.
  959. Merge also helps Phong shading; more about Phong shading in the soon
  960. to come Attribute Tutorial. 
  961.  
  962. Delete is pretty obvious command. It can also be found in the Functions
  963. menu.  When you use delete, every picked object will be removed from the
  964. world. This command is used a lot to get rid of cruft and deadwood, so
  965. knowing the keyboard shortcut of right-amiga-d is useful.
  966.  
  967. As with all of the editors, Imagine has one level of "Undo", which can
  968. be selected from the Project menu. When using dangerous commands like
  969. Delete, being able to recover from the command is important. Undo will
  970. work with almost any command. You can also undo an undo, reinstating a
  971. command you decided you wanted anyway. 
  972.  
  973. -------------------------------------------------------------------------
  974.                    VIII. Spraypaint and Picture Frames
  975. -------------------------------------------------------------------------
  976.  
  977. The low-level commands to create and manipulate objects are sufficient
  978. to create any model you can think of.  An additional level of control
  979. you have is the ability to define the surface color and attributes of
  980. your object. A flat plane might be made of two triangles, but
  981. depending on how you set the attributes of the plane, it might render
  982. as a pane of glass, a reflective mirror, a wood tabletop, a piece of
  983. graph paper, or a picture of your grandmother. Defining the surface
  984. characteristics of objects gives them their character. Luckily,
  985. Imagine gives you excellent control of these attributes.
  986.  
  987. Every object has a set of attributes that can be modified. In a group,
  988. every object can have different attributes from the parent; when you
  989. select a group, you only modify the parent's attributes. To change any
  990. attributes, just pick an object and select "Attributes" from the Object
  991. menu. A requester will appear, and you can select different properties
  992. to change. In addition, you can place brush maps and textures on the
  993. object, as well as add or change the object's name.
  994.  
  995. Choosing and setting attributes is immensely important to make your
  996. objects look good. Setting textures and especially brushmaps give you
  997. near-infinite control on what your object's surface looks like.  I
  998. have written full tutorials on both the use of texture and brushmaps,
  999. and plan to write one on setting attributes.  The choices in the
  1000. attributes requester are so important that they deserve a tutorial
  1001. unto themselves. I haven't written the attribute tutorial as of today
  1002. (6/11/91), but look for it by the end of July.
  1003.  
  1004.  
  1005. -------------------------------------------------------------------------
  1006.                     IX. A Mode for Every Season
  1007. -------------------------------------------------------------------------
  1008.  
  1009. The basic commands to pick, move, and view the world and everything in
  1010. it are very important, as they are used constantly. The actual work
  1011. you perform in building objects depends on the user changing the view
  1012. and manipulating the objects almost without thought.
  1013.  
  1014. No matter how good we are at manipulating objects and changing the
  1015. view, using these commands will never BUILD an object for us. To do
  1016. this, Imagine has different MODES that it performs different actions
  1017. in. Some modes allow us to manipulate objects and groups, as we have
  1018. been doing already. Other modes let us pick and manipulate not
  1019. objects, but the POINTS of an object, or the edges, or the faces.
  1020. Still other modes let us drag points around in different ways. Some
  1021. let us add NEW points, edges, and faces.  (Aha! So that's how we can
  1022. build our own objects!)
  1023.  
  1024. These modes are easy to change; you can just pull down the Mode menu
  1025. and select which mode you would like to be in.  The current mode is
  1026. always displayed in the status line at the top of the screen; this is
  1027. often handy when you get confused about what you're doing. The
  1028. keyboard equivalents for changing the current mode all use right-Amiga
  1029. and a digit; this makes the keypad become a "mode selector" if you
  1030. don't want to use the pull-down menus and have stuff it takes to
  1031. remember which digit is which mode.  Personally, I don't have the
  1032. stuff, so I bear with the pulldown menu rather than strain my poor
  1033. brain.
  1034.  
  1035. The default mode is "Pick Groups", which means that whenever you click
  1036. on a group, it will be picked. (Simple!) If you want to pick
  1037. individual objects, EVEN IF THEY ARE THE PARENT OF A GROUP, there is
  1038. a mode called "Pick Objects."  Just select it from the mode menu, and
  1039. now when you click on any object (in a group or not, child or parent)
  1040. it will be selected. You cal obviously multi-select it using the shift
  1041. key. When you are dealing with ungrouped objects, "Pick groups" and
  1042. "Pick objects" work identically.
  1043.  
  1044. Different modes let you deal with the different parts of an object. Up
  1045. until this time, we've always dealt with entire objects at a time. We
  1046. could rotate, scale, and move them, add them, group them, and delete
  1047. them, though we could not affect their basic structure. The remaining
  1048. modes all work on PARTS of objects, not objects themselves. One
  1049. important note is that to even enter these other modes, you must have
  1050. selected at least one object (or group) for the new modes to act apon.
  1051.  
  1052. You'll also find that I consistently lied to you in most of the
  1053. previous sections. I always referred to picking objects as opposed to
  1054. picking anything else. ALL of the pick and select commands except Find
  1055. work equally well in picking faces, edges, or points as opposed to
  1056. just objects or groups. Most other commands like Delete will work on
  1057. the parts of an object as well.
  1058.  
  1059. One new mode is "Pick points." If you pick an object or group and
  1060. enter the pick points" mode, the object will turn white (the object is
  1061. NOT picked anymore!) and it's points will all become visible (they
  1062. will show up as small squares.) Now you are in a different mode; you
  1063. are no longer picking and selecting OBJECTS, you are dealing
  1064. exclusively with points. You can then click on the points which will
  1065. turn orange as you pick them. You can use the shift key to multi-pick,
  1066. or the lasso and drag box to grab many points at once. You can also
  1067. select points, and use all of the selection tools to help you get any
  1068. subset of points you want. Selected points are green, picked points are
  1069. orange, and picked and selected points are yellow.
  1070.  
  1071. When you're picking points, edges, or faces, Imagine will work ONLY
  1072. with the points, edges, or faces in the object that was picked before
  1073. you chose the "pick points (or edges or faces)" mode. This prevents
  1074. you from confusing one object's points with another's. When you scroll
  1075. around your view or redraw the screen, the other objects won't even be
  1076. updated, so don't get scared if they seem to disappear. When you
  1077. re-enter pick objects or pick groups mode, all of the objects will
  1078. re-appear.
  1079.  
  1080. Just because you can pick something doesn't mean you can perform every
  1081. command on them. In the case of points, you can delete your picked
  1082. points, or use the transformation requester to translate them;
  1083. interactive dragging is actually another mode of it's own, though.
  1084. When you delete a point, you delete any edges and faces that that
  1085. point help form. You cannot do things to selected points that make no
  1086. sense (like grouping them, or saving them to a file)- that's just
  1087. weird.
  1088.  
  1089. You can perform some other commands that aren't applicable to objects
  1090. as a whole, however. For example, a very useful command is called
  1091. "split." It takes the selected points,  removes them from the
  1092. original object, and gives them their own axis. In effect, the
  1093. original object is split into two parts defined by the points you
  1094. picked. Any connecting faces or edges are deleted (two objects do NOT
  1095. share!).  This might be very useful when you have a logo and want to
  1096. pull one letter out of the object to do something special with it.
  1097.  
  1098. One command that is unique to pick points mode is "taut", which is
  1099. found in the Functions menu. If you select three or more points and
  1100. select "taut", the middle points will jump to the line segment defined
  1101. by the first and last points. This command might be useful to line up
  1102. a bunch of points in a straight line quickly. Taut does NOT work with
  1103. anything other than picked points.
  1104.  
  1105. Picked points can be manipulated with the Transform command. The
  1106. picked points can be translated, scaled, rotated, and positioned
  1107. INDEPENDENTLY of the rest of the object. Rotations and scalings all
  1108. use the object's axis as a reference point. Absolute positioning will
  1109. move the FIRST point you pick to the location you choose, and the
  1110. rest of the picked points will be translated an equal amount. Interactive
  1111. dragging is accomplished using the "drag points" mode.
  1112.  
  1113. Picking edges is similar to picking points, except to specify an edge
  1114. you just click on the two points that make it up, or lasso or drag box
  1115. the entire edge. Just like points, you can't perform every command on
  1116. them. You can delete them and split them.
  1117.  
  1118. You CANNOT translate edges or use taut on them. Deleted edges will 
  1119. delete any face they belong to, but the points in the edges will NOT
  1120. be removed.
  1121.  
  1122. A new command you cannot perform on points but can use on faces is
  1123. called "fracture." This command is in the Functions pull down menu,
  1124. and is often very useful. The fracture command will take and break 
  1125. each edge into two edges, with an additional point added to the
  1126. midpoint of each selected edge. This command is very useful when you
  1127. need to increase the detail level at a certain area of an object; the
  1128. extra edges that appear allow you to manipulate them to add finer
  1129. details and structures.
  1130.  
  1131. Select Faces is again pretty straightforward. You must click on ALL
  1132. THREE of the points that make up the face to select it. Fracture works
  1133. very well on faces; it splits each face (one triangle) into four
  1134. triangles defined by the midpoints of the face. The new faces can then
  1135. be manipulated for higher object definition.
  1136.  
  1137. Deleting faces removes the faces, but not the edges or points that it was
  1138. made up of.
  1139.  
  1140. Picked faces allow you to characterize an object's appearance in local
  1141. areas. The attribute requester normally allows you to give the object
  1142. overall color, reflection, and transparency values. You can actually
  1143. set these for every single face, if you like. You can pick one or more
  1144. faces, select "attributes" from the Object menu, and use the sliders
  1145. to set the color, transparency, and filter values for the face or
  1146. faces.
  1147.  
  1148. You will NOT see any change in the appearance of your object when you
  1149. do this, but when you render, the faces you selected will all override
  1150. the default object color with the attributes you selected. A danger is
  1151. that face attributes are somewhat fragile. If you join or merge
  1152. objects or start deleting or adding points to it, all face coloring is
  1153. often lost. To keep this from happening, color individual faces LAST,
  1154. just before saving your object.
  1155.  
  1156. A final note about face coloring; don't depend on it for coloring your
  1157. objects in complex ways. Using grouped objects or brush maps is much
  1158. more robust and allows better control. Coloring individual faces is
  1159. useful mostly for quick and dirty attribute definition or for making
  1160. small details that aren't worth the bother of a brushmap or extra
  1161. object.
  1162.  
  1163. Both "pick edges" and "pick faces" will allow you to split off the
  1164. selected parts of the object to create two new objects by using
  1165. "split", just as split works with selected points.
  1166.  
  1167. Three additional modes are "add points", "add edges", and "add faces".
  1168. Add points will add an additional point to your object in the location
  1169. you click on. Add edges lets you click on TWO points and will add a
  1170. new edge joining them. Add faces mode will let you add a new face to
  1171. an object by clicking on the THREE points that make it up.
  1172.  
  1173. "Add lines" mode is a convenient combination of "add points" and "add
  1174. edges". As you click, a new point is added in the location you point
  1175. to, and further clicks will add additional points along with an edge
  1176. joining the latest point to the one that was immediately preceding it.
  1177. Thus, a few clicks around the border of a rough circle will make a set
  1178. of points with the edges following the outline of that circle.
  1179. Carefully clicking on the location of an existing point will cause the
  1180. new line to connect to to that point, so making closed shapes is
  1181. easier.
  1182.  
  1183. "Drag points" mode allows you to interactively drag individual points
  1184. in your object around. If you select this mode, you can click on any
  1185. point and drag it to a new location interactively. Any edges or faces
  1186. that this point is connected to will follow the point to its new
  1187. location.
  1188.  
  1189. Dragging multiple points is also easy- just use the shift key,
  1190. multi-pick the points by clicking on each in turn, and when you want
  1191. to start dragging them, just release the shift key.
  1192.  
  1193. AN IMPORTANT TECHNIQUE: What if you want to select a point or points
  1194. in one view, and drag them in an orthogonal direction? For example,
  1195. you have a plane defined by a horizontal 10 by 10 grid, and you want
  1196. to select a bunch of points from the middle and pull them up. If you
  1197. click on the points from the top view, you can easily select any of
  1198. the points you're interested in, but you can only drag them left and
  1199. right, forward and back. You want to be able to drag them UP.
  1200.  
  1201. Here's the method for doing this: it is invaluable, so remember it.
  1202. Whether you want to move one point or a hundred, press the shift key
  1203. to multi-pick the points.  Click on the points you want to move in ANY
  1204. view, keeping the shift key depressed. To move all of these points,
  1205. KEEP THE SHIFT KEY DEPRESSED and move the mouse to the view where you
  1206. want to move the points in. Press and hold the left button, then
  1207. RELEASE the shift key. The picked points will move with your mouse for
  1208. as long as you keep the button held down. Releasing the button will
  1209. anchor the points.
  1210.  
  1211. In the example with the 10 by 10 horizontal grid, you would press
  1212. shift, click on the points you want in the top view, move to the front
  1213. (or right) view, release the shift key, move the points up, and
  1214. release the mouse button.  That's it!
  1215.  
  1216. Magnetism, a more complex way of dragging points will be covered in
  1217. the "advanced" Detail tutorial.
  1218.  
  1219. One problem with manipulating points, edges, and faces is picking the
  1220. RIGHT point. When the object is complex, the wireframe displays can
  1221. get very cluttered. There is a convenient way of simplifying a view to
  1222. get points out of your view- it is a mode called "hide points". In
  1223. hide points mode, any points you select (with click, drag box, or
  1224. lasso) will disappear from view- they will go away. They still exist,
  1225. they just aren't displayed and can't be picked or manipulated. You can
  1226. "hide" whatever points that get in the way of your work area, then
  1227. change modes, and manipulate the non-hidden parts of your object.
  1228. Selecting "pick objects" or "pick groups" will make the hidden points
  1229. re-appear.
  1230.  
  1231. For example, if you're working on a helicopter model and you want to
  1232. work on the rotor alone, you might select "hide points" mode, and use
  1233. the lasso to indicate the main helicopter body. The rotor is left
  1234. alone, and after changing into drag points or select faces mode, it is
  1235. easy to indicate what portion of the rotor you want to deal with
  1236. without accidentally modifying the helicopter body. Selecting "pick
  1237. objects" mode makes the entire helicopter, with the rotor changes,
  1238. reappear.
  1239.  
  1240. In theory, you can create any object by adding an axis, then adding
  1241. points, edges and faces. In practice, these are very low level
  1242. commands; you generally use the more powerful commands like "mold" and
  1243. "slice" found in the Object editor. The low level select and add modes
  1244. are built to give you the low level control that you sometimes need;
  1245. however, they are more for defining basic outlines that are then used
  1246. in the more powerful Object commands, or for touching up small details
  1247. on nearly complete objects. The next Detail tutorial will talk about
  1248. these commands. 
  1249.  
  1250. -------------------------------------------------------------------------
  1251.                         X. More to come
  1252. -------------------------------------------------------------------------
  1253.  
  1254. This tutorial describes the important fundamentals of using the Detail
  1255. Editor. Remember that most object creation mostly uses the advanced
  1256. functions like "mold" and "slice". My next tutorial will deal with
  1257. these powerful tools; however, the basics that are described in this
  1258. tutorial are very useful and knowing how to move your view and
  1259. manipulate objects is virtually essential. I also plan to write a
  1260. general tutorial (with examples!)  describing object creation; knowing
  1261. all the menu commands doesn't give you a sense of the strategies to
  1262. follow or steps to take to create a specific model.
  1263.  
  1264. Another important discussion in the followup Detail Tutorial will
  1265. describe different classes of objects: lone axes, line paths,
  1266. outlines, flat objects, and "normal" objects.  Expect the second
  1267. tutorial around the middle to end of July, 1991.
  1268.  
  1269. Whew! Another tutorial whipped out! Actually, this one only covers 2/3
  1270. of an Editor, but including everything would really stretch the limits
  1271. of a coherent text file. (This one is only 71K!) I am very glad to
  1272. have gotten a lot of positive response from my last tutorial on the
  1273. Forms Editor; I hope this one (which covers a much more complex
  1274. Editor) is equally well received.
  1275.  
  1276. If you have any questions, you are welcome to write me or send
  1277. e-mail to the Internet Imagine Mailing list, imagine@athena.mit.edu.
  1278. Any suggestions or "I want to see this in a tutorial" questions
  1279. sent to me personally will be gladly accepted.
  1280.  
  1281. -Steve
  1282. -------------------------------------------------------------------
  1283. Steve Worley                                spworley@athena.mit.edu
  1284. -------------------------------------------------------------------
  1285. Steve Worley
  1286. 290 Massachusetts Ave.   (this address soon to change, but mail sent
  1287. Cambridge MA 02139        here will eventually make it to me anyway...)
  1288. ----------------------------------------------
  1289. This file and the text therein is Copyright 1991 by Steven P. Worley.
  1290. All rights reserved.  This file may be distributed freely in computer
  1291. or paper form as long as 1) It is unchanged and unedited 2) is
  1292. distributed in its entirely 3) gives proper credit to the author,
  1293. Steven Worley.
  1294. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1295.  
  1296. APPENDIX B:  FORMS TUTORIAL (by Steve Worley)
  1297. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1298.  
  1299. This is my long-promised tutorial on the Forms Editor. It is split
  1300. into two sections in order to keep mailers from choking. The first
  1301. part (which you are reading now) describes how the Forms Editor creates
  1302. its objects and what each menu option does. The second file contains
  1303. three step-by-step examples that show you how real objects are planned
  1304. and built in the Forms Editor.
  1305.  
  1306. There is a set of screen grabs and example pictures on hubcap.clemson.edu
  1307. in the pub/amiga/incoming/IMAGINE/MISC directory in a file called
  1308. Form_Tutorial.lzh. You might want to download this file to help with
  1309. the example forms I describe.
  1310.  
  1311. I've spent a LOT of time in writing over 40K in text to make this
  1312. tutorial and especially the example pictures. Any feedback is GREATLY
  1313. appreciated, as it will spur me on to doing a Detail Editor tutorial
  1314. sooner.
  1315.  
  1316.                        The Imagine Forms Editor
  1317.  
  1318. The creation of objects in Imagine is certainly not as intuitive as
  1319. the process you used in kindergarten to squeeze clay into vague animal
  1320. shapes. Instead of a real life view of the object, you get a 
  1321. complex quad-view display. Instead of using your grubby fingers, you
  1322. have a very 2-D mouse. Most importantly, if you wanted to change the
  1323. shape of a clay model, you just pushed and pulled on it. In Imagine
  1324. (and any other computer modeler) you have to use a very specific set
  1325. of tools to manipulate your objects. No matter how powerful these
  1326. tools are, they are still going to limit the ways you can manipulate
  1327. your creation.
  1328.  
  1329. This tutorial is a taste of the Forms editor. The editor is VERY
  1330. powerful, but not necessary easy to describe. It allows you to create
  1331. certain types of detailed object shapes quickly and easily, and is
  1332. certainly not limited to the asteroid-like example in the Imagine
  1333. manual.
  1334.  
  1335. ---------------------------------
  1336. Part I- What IS the Forms Editor?
  1337. ---------------------------------
  1338.  
  1339. You might have noticed that Forms has in essence NO description in
  1340. the Imagine manual. The manual's tutorials do not describe how the Form
  1341. Editor works or why you should use it other than "It is very powerful"
  1342. and "It can make organic forms easily." I don't blame Rick Rodriguez- 
  1343. the Forms Editor is difficult to understand and hell to explain even
  1344. in person.
  1345.  
  1346. It is very hard to describe how the Forms Editor works. It uses a very
  1347. strange method of defining it's objects that is difficult to put into
  1348. words. You might want to re-read this explanation a few times, since
  1349. the Form Editor is much easier to control when you know what it is
  1350. doing and how it determines your object's shape.
  1351.  
  1352. The Forms Editor defines it's objects as a set of varying radii
  1353. cross-sections. You have a great amount of control over both the shape
  1354. and size of these cross-sections.
  1355.  
  1356. Think of an orange, and the wedge-shape segments that make up the
  1357. orange's cross section. If the orange wedge were in the shape of a
  1358. square instead of a half-circle, the orange would become a cylinder
  1359. instead of a sphere.  If you make the square wedges in one direction a
  1360. different size than the wedges at 90 degrees to them, the orange
  1361. distorts into a squashed cylinder which looks like an oval from the
  1362. top.
  1363.  
  1364. If you define the wedges to be square in one direction and crescent
  1365. shaped the other (90 degree) direction, you will get an orange shaped
  1366. like a cross between a cylinder and a sphere- the resulting object is
  1367. something like a sphere with two ends sanded to a smoothly
  1368. beveled edge.
  1369.  
  1370. Another way we might mutate the orange is instead of changing the
  1371. shape of the  wedges, we can change the radius of each wedge
  1372. as we look at them from the top of the orange. If the wedges on the
  1373. front side of the orange have a larger radius than the rest of the
  1374. wedges (but the same shape), the orange is going to look like it is
  1375. ballooning with air pressure with one swollen side. 
  1376.  
  1377. If the radius of each wedge changes as you go around the orange
  1378. (perhaps an alternating big-small-big-small), the orange will take on
  1379. a fluted, star-like horizontal cross-section. Any vertical
  1380. cross-section will still be circular.
  1381.  
  1382. Got that so far? Well, this is exactly what the Form Editor allows you
  1383. to do. You can define a the shape of these wedges in both the
  1384. front-to-back and left-to-right directions, as well as having
  1385. completely independent control over the radial size of these cross
  1386. sections. 
  1387.  
  1388. When you mix these abilities, you can produce an AMAZING number of
  1389. complex shapes, especially since each wedge can loop up and down and
  1390. form holes and cross over itself. No tree ever made an orange with the
  1391. peel intersecting itself, but the Forms editor will gladly create a
  1392. shape like this for you.  The Forms editor handles all of the details
  1393. and bookkeeping, and lets you worry about your form.
  1394.  
  1395. The actual mechanics of producing the object are a bit complex, though
  1396. straightforward. There are four user-defined cross sections (at 0, 90,
  1397. 180, and 270 degrees, looking from the top) each with the same number
  1398. of points defining it. Every section around the orange comes out at a
  1399. certain angle (like 45 degrees) and its cross section is interpolated
  1400. from the four pre-defined cross sections (probably linearly, it's hard
  1401. to tell). For the 45 degree example, the cross section would be
  1402. formed by taking the 0 degree and 90 degree user defined cross sections
  1403. and assigning each 45 degree cross section point a position mid-way between
  1404. its corresponding location at the 0 degree cross section  and its
  1405. location at the 90 degree cross section. Thus, the cross section will
  1406. smoothly change from one shape to another as you move around the form.
  1407.  
  1408. Once the vertical cross section is determined, they are scaled
  1409. radially by an amount given by the radius of the user defined
  1410. HORIZONTAL cross section (the top view). An area where the horizontal
  1411. cross section has a radial bulge will cause the wedge at that point to
  1412. stick out a bit more. These bulges can be as severe as you like.
  1413. Instead of a bulge, it is easy to make a sharp knife point.
  1414.  
  1415. This method of defining objects gives you an amazing amount of
  1416. control.  The radial control alone is completely flexible, allowing
  1417. you to use negative radii, or move the points so that the outside
  1418. surface actually reverses itself and backtracks.  The vertical cross
  1419. section is equally malleable, allowing you to make self-intersecting
  1420. walls that are either closed or tube-like. [Or both!]
  1421.  
  1422. That's it! The user defined vertical and horizontal cross sections
  1423. completely determine the shape of the object. It is very useful to
  1424. know how the form is actually constructed- it is not easy to figure
  1425. out, and the documentation does not describe the method at all. Once you
  1426. understand how Imagine makes the object, you can actually plan how to
  1427. build a specific shape.
  1428.  
  1429. One great advantage to the Forms Editor is the fact that the form is
  1430. continuous- it is made one piece. This means that making smoothly
  1431. rounded corners is easy. Organic forms in particular do NOT have sharp
  1432. right angles and flat planes in them, and are particularly well suited to
  1433. creation in the Forms Editor. Any object created in the Detail Editor
  1434. tends to be made of extruded or primitive objects joined together- there
  1435. is rarely any smooth transition between the joined segments.
  1436.  
  1437. --------------------------------
  1438. Part II- Use of the Forms Editor
  1439. --------------------------------
  1440.  
  1441. The actual creation of these cross-section forms is pretty easy. The
  1442. Form editor is particularly fast in it's response, since the tri-view
  1443. does not have as many points to update as the view in the Detail Editor.
  1444.  
  1445. When you start up the Forms Editor, you have the option of loading in
  1446. an old form or starting a new one (By choosing "load" or "new" from the
  1447. Object menu). You have a decision when you make a new object on
  1448. whether you want an X-Y cross-section or an X-Z cross section. The X-Y
  1449. option makes your object like the orange- the segments are all
  1450. arranged around the vertical axis. X-Z orients the object on its side,
  1451. like a piece of wood on a lathe. (The Form editor can emulate a lathe
  1452. very easily, but is much, much more versatile.) Most of the time
  1453. you'll want an X-Y cross-section, but everything works similarly for
  1454. an X-Z. 
  1455.  
  1456. You also have a choice on how many points and cross sections to add.
  1457. The "# of slices" is NOT the number of orange segments, but the
  1458. number of points that defines each orange segment. The "# of points" is
  1459. the number of orange slices you have. These labels are defined sort of
  1460. backwards, but if you confuse them it is easy to fix. I feel the
  1461. default numbers are very large- its easier to start with a simple
  1462. version of your form and add points later for detail. It is EXTREMELY
  1463. easy to increase (or decrease) the number of points and segments
  1464. later, so I usually start with something like 12 points, 8 sections.
  1465. Again, this is easy to change later. If you start with many
  1466. points, it takes a considerable amount of time just to move each of
  1467. the points into your coarse shape before you refine details.
  1468.  
  1469. The default start up form is that of a sphere with two small holes in it
  1470. at the top and bottom. 
  1471.  
  1472. The Form Editor does NOT display objects in it's triview like the
  1473. stage and detail editors do. It shows the vertical cross sections (the
  1474. orange wedge shapes) in the front and right views, the horizontal cross
  1475. section (wedge radius as you go around) in the top view. The perspective
  1476. view is accurate, and you can select wireframe, solid, or shaded mode
  1477. by using the View menu just like you would in the other Editors. I prefer
  1478. solid because many forms get very complex very fast, and it is difficult to
  1479. see the basic structure in the wireframe mode.
  1480.  
  1481. To manipulate a cross section, you just grab a point and move it to
  1482. where you want. You can change all FOUR of the vertical cross
  1483. sections- if you look in the bottom views, each cross section is a
  1484. separate string of points. If you select a point, it's corresponding
  1485. points on each of the other cross sections will highlight for
  1486. comparison. You can define each cross section completely
  1487. independently- the front view will let you manipulate the cross
  1488. sections of the orange at 0 degrees and 180 degrees, and the right
  1489. view will let you set the 90 and 270 degree cross sections.
  1490.  
  1491. Note that the 4 cross sections are not connected at the top and
  1492. bottoms. You are free to move the top and bottom away from the center
  1493. axis. Moving the points so they lie on top of each other on the Z axis
  1494. will cause the object to close at that point. Moving one or more points
  1495. away from the axis will cause a hole or entrance to the center of your
  1496. object to appear. This allows your object to be open at the top and/or
  1497. bottom, so you could have a tube or bowl instead of a sphere. 
  1498.  
  1499. If two opposing cross sections (like 0 and 180 degrees) touch and the
  1500. other two do not, you will end up with an object with an intersection in the
  1501. shape of a bow tie. If you do connect any of the points (you can
  1502. connect in the middle, too!) you might want to make sure they are
  1503. EXACTLY on top of each other and then use the Detail Editor MERGE
  1504. command when you're finally done with design. This will decrease the
  1505. file size of your form, increase rendering speed, and increase the
  1506. ability of the Phong shading.
  1507.  
  1508. Most of the time you don't need to control each individual point, and
  1509. if you were making a simple object it would be irregular due to slight
  1510. differences in the cross-sections. The Form Editor has a very useful
  1511. feature called symmetry that will fix this problem. If you turn on
  1512. symmetry, whenever you move a point, it's corresponding point(s) will
  1513. follow and put themselves in the corresponding position. There are
  1514. five options for symmetry:
  1515.  
  1516.  o None.  Every point is completely independent. Default.
  1517.  
  1518.  o Front. The 0 degree points will follow the 180 degree points
  1519.           and vice versa. 90 and 270 are completely independent.
  1520.  
  1521.  o Right. The 90 degree points will follow the 270 degree points
  1522.           and vice versa. 0 and 180 are completely independent.
  1523.  
  1524.  o Both.  The 90 degree points will follow the 270 degree points
  1525.           and vice versa. The 0 degree points will follow the 180
  1526.           degree points and vice versa. Think of it as "oval"
  1527.           symmetry.
  1528.  
  1529.  o 90     Every point will follow the corresponding point in every
  1530.    degree view. Complete radial symmetry.
  1531.  
  1532.  
  1533. These symmetry options are very easy to use. Note that turning on
  1534. symmetry does not immediately make the cross sections symmetric-
  1535. only points you touch and move will change.
  1536.  
  1537. Most graceful objects have at least one axis of symmetry, many have
  1538. two, and some have 90 degree symmetry. Note that 90 degree symmetry is
  1539. actually completely circular. Thus, any swept object (from the Detail
  1540. editor) can actually be made by using 90 degree symmetry and keeping
  1541. the radius constant (the top view of the horizontal cross-section).
  1542.  
  1543. The top view does not have any symmetry controls, and sometimes it
  1544. would be nice to be able to keep the points somewhat ordered. One way
  1545. around this is to use "lock" from the select menu. Lock will
  1546. automatically snap any point you move to the nearest grid location to
  1547. where you let it go.  This is very useful for making straight lines,
  1548. or for creating symmetric cross sections in the top view. You can also
  1549. select a bunch of points at once (using the shift key) and use "snap
  1550. to grid" in the object menu. This makes each point move to the grid
  1551. location closest to it. You can use the drag box or lasso to help
  1552. choose what points to select.
  1553.  
  1554. Grid size is obviously very important when using lock, since it
  1555. determines the grid intersections. I definitely recommend using grid
  1556. sizes like 32, 64, and 128. Using 20, 25, 50, 100 certainly seems
  1557. reasonable until you start dealing with grids like 6.25 or 3.125.  The
  1558. power-of-two grids also work well with zooming, since zoom-in and
  1559. zoom-out double and halve the screen scale. This is obviously a matter
  1560. of choice for each user. Some times when dealing with real blueprints
  1561. or measured objects, different scales are much easier to deal with.
  1562.  
  1563. There is no question that when you want to build an object in the
  1564. Forms Editor, you should start simple and work up. Unlike the Detail
  1565. Editor where adding new (non-modular) details is difficult, adding
  1566. more polygon resolution is a snap in the Forms Editor.
  1567.  
  1568. There are actually three modes to the Form Editor. The default is
  1569. "Edit" which allows you to drag points around to define the
  1570. cross-sections. However, you can also add new points by selecting
  1571. "Add" and clicking on CURRENT points. A new point will be added on the
  1572. line connecting the point you clicked on and one of it's neighbors.
  1573. You can also position this new point by keeping the mouse button down
  1574. and dragging the point to its new location. You can edit these new
  1575. points in Edit mode at any later time.
  1576.  
  1577. If you add a new radial point (top view) you'll see the point appear
  1578. at the next (clockwise) segment.  If you add a new vertical cross
  1579. section point, you'll see FOUR points appear, one in each of the four
  1580. cross section (this is reasonable- the cross sections can't have
  1581. different numbers of points!)  Deletion is done by selecting delete
  1582. mode and clicking on the unwanted points. Again, 4 points will go away
  1583. if you select a cross section from the front or right views.
  1584.  
  1585. It is so simple to add points that defining a new object with a lot of
  1586. starting points is silly. It is VERY difficult to control that many
  1587. points, especially in the top view where there you can't use symmetry.
  1588. It is easier to start off with about 8 points per vertical cross
  1589. section and around 12 radial sections, and arrange these in a coarse
  1590. approximation of your object to get general shape and proportions,
  1591. then add more points for details. Trying to stretch a cross section
  1592. with a lot of points can be a royal pain. 
  1593.  
  1594. Remember, the plan is to start off with a few points and work up. You'll
  1595. often find you don't need as many points as you thought to get a well
  1596. defined object. The example projects all use a few points to define the
  1597. coarse shape, then add point to make fine details.
  1598.  
  1599. ------------------
  1600. Part III- Examples
  1601. ------------------
  1602.  
  1603. As a final demonstration of how the Form Editor is used, I'll describe
  1604. three tutorial objects you can make. You are EXTREMELY advised to sit
  1605. down an make these objects. Reading the tutorial is fine, but moving
  1606. the mouse around is the best way to learn how to make these sorts of
  1607. things yourself.
  1608.  
  1609. There are some screen grabs of some key steps in these tutorials in a
  1610. file called Form_Tutorial.lzh on hubcap.clemson.edu in the
  1611. /pub/amiga/incoming/IMAGINE/MISC directory. These screen grabs show
  1612. the step by step evolution of the examples, as well as a couple of
  1613. rendered examples. You might want to get these (especially for the
  1614. last example) but you're welcome to wing it by using the text alone.
  1615. The file also has a copy of this text in it, so you won't have to
  1616. separate this mail message out if you're getting it on the mailing list.
  1617. If you don't know what FTP is, ask a local computer wizard and hope
  1618. you have access. :-)
  1619.  
  1620. ---------------------------------------------------------------------
  1621.                        A Coke (TM) Can
  1622. ---------------------------------------------------------------------
  1623.  
  1624. The Detail Editor has a powerful tool called sweep that can create
  1625. simple radially symmetric objects like a soda can or a candlestick
  1626. holder. However, the Forms editor can one-up sweep pretty easily.
  1627.  
  1628. Our goal is to create an object in the shape of a standard 12 ounce
  1629. soda can with all the details like the hollow on the bottom and the
  1630. little metal ridge on the top. The Forms Editor can create objects
  1631. like this with no trouble, and do it faster and much easier than using
  1632. the Detail Editor to spin a line outline of the can would take.
  1633.  
  1634. Enter the Form Editor, and make a new form (in the Object menu) with 4
  1635. slices and 20 points. A can at first approximation is just a cylinder.
  1636. We need many points around the radius to get a nice smooth circle
  1637. cross-section, but only a few slices to define the rectangular
  1638. vertical cross-section. For this example, we'll never muck with the
  1639. 20-point circle cross section.
  1640.  
  1641. The cylinder is obviously radially symmetric, so we will probably want
  1642. to turn on 90-degree symmetry from the symmetry pull-down menu.  The
  1643. points that you manipulate in the front and right views will now move
  1644. their corresponding siblings, keeping the object radially symmetric.
  1645.  
  1646. To make a quick and dirty cylinder, move each point in the vertical
  1647. cross sections so that they are on the same Z line- they should stack
  1648. vertically on top of each other. I like manipulating the right hand
  1649. cross section in the Front view. Remember, the symmetry mode will move
  1650. the other three points for you. You can use the perspective view to
  1651. see what effect you're having on the form.  You might look at the
  1652. screen-grab called can_one to see how the first simple model should
  1653. look.  Again, these screen-grabs have to be downloaded from the FTP
  1654. site hubcap.clemson.edu.
  1655.  
  1656. What do we get? Well, our horizontal cross section is unchanged, its
  1657. still a nice circle. We don't want to muck with it. Our horizontal
  1658. cross section is a nice straight vertical line. If you think about it,
  1659. this should give us an object in the form of a tube. If you look at
  1660. your perspective view and don't see a tube, something is wrong. Look
  1661. at the can_one picture again to see what the problem is.
  1662.  
  1663. There are two problems with this tube. First, the sides are a bit
  1664. wavy, since each point was moved manually and they might not be
  1665. exactly on the same vertical line. Second, if we really want to make a
  1666. Coke can, we should at least get the proportions and scale right so we
  1667. don't have to squash and stretch things later to get it to look
  1668. reasonable.
  1669.  
  1670. To fix the wavy line problem, we just use "lock" mode from the
  1671. select menu. Remember, this will make any point we move jump to grid
  1672. intersections, so if we move the points around by the same Z line
  1673. they'll all line up on the same grid line.
  1674.  
  1675. We should also figure out how to get the right can proportions. If you
  1676. get out a ruler, you'll find a standard Coke can is 12.2 cm tall and
  1677. the main body is 3.25 cm in radius. It is difficult to accurately
  1678. change the radius of our form, but we can make every other measurement
  1679. use the default radius of 100 Imagine Units as a reference. Hence,
  1680. there are 3.25 cm in 100 Imagine Units, so the can should be 375 units
  1681. high.  If we change the grid spacing to 25, our can should be fifteen
  1682. grids high.  It is easy to automatically set the height of our object,
  1683. because the points will leap to the right position when we move them
  1684. to the correct (coarse) point. You might want to turn on "coordinate"
  1685. mode from the display menu to help identify where you are moving your
  1686. points.
  1687.  
  1688. It might occur to you that we also don't want a tube, we want a solid
  1689. cylinder, with ends. This is easy to make, we'll just take the top
  1690. cross section point and move it to the Z axis to enclose the top and
  1691. move the bottom point to the Z axis to enclose the bottom. This gives
  1692. us the rectangular cross-section we need to form a cylinder.
  1693.  
  1694. We'll make our can so that the axis is at the very bottom, at 0, 0, 0,
  1695. and the can rises to a height of 375 in the Z direction.
  1696.  
  1697. To actually change our rough tube to this properly proportioned, capped
  1698. cylinder, set the grid size to 25, turn on lock, and move the top
  1699. right point in the FRONT view to the 0, 0, 375 grid intersection. The
  1700. other views should show the corresponding points moving up as well.
  1701. Move the second point to form the outside top edge of the can, to 100,
  1702. 0, 375. The third point forms the side, at 100, 0, 0, and the last
  1703. point will define the bottom, and should go to 0, 0, 0.
  1704.  
  1705. Your can should look like the picture can_two.
  1706.  
  1707. Ok, this DOES indeed look like a nice cylinder. So how do we get the
  1708. nice details like the top rim, and the dent on the bottom, and the
  1709. narrower "lip ridge" just below the top rim?  I said that it was easy
  1710. to add detail once you had a basic, crude form. Let's make the bottom
  1711. dent of the can.  Turn _off_ lock, so that we can move the points
  1712. freely to whatever location we want. We want to add come points to the
  1713. vertical cross sections so we have more control over the shape of the
  1714. can.
  1715.  
  1716. Select 'Add' from the mode menu. Now, whenever you click on a point, a
  1717. new point will appear at the midpoint of the line below it. We want to
  1718. add a point to the very bottom line segment (Which is currently the
  1719. horizontal line making the bottom of the can).  Just click on the
  1720. bottom outer point and a new point should appear on the bottom
  1721. horizontal line. Enter 'Edit' mode from the mode menu, and you'll find
  1722. this new point is just as easy to manipulate as the originals.
  1723.  
  1724. To form the bottom dent, we want to move the very last point on our Z
  1725. centerline UP to make a cavity. The point should be moved about a third
  1726. of a cm, or 10 units. You might want to turn on 'coordinates' from the
  1727. display menu to help measure the distance. Once you move the point up,
  1728. you'll see the dent in the perspective view if you move it so you can
  1729. view the bottom of the can. The new point that we added can be moved
  1730. up to make the bottom dent more bowl-like instead of a cone.
  1731.  
  1732. The trick to adding detail is to identify where you want to add a new
  1733. feature. If you want to add a new dent or bulge, a new point added at
  1734. the location you want can be moved in or out to make the feature.  If
  1735. you need to line things up, judicious use of changing the grid size
  1736. and using 'lock' will let you place the points accurately. Note that
  1737. the Forms editor LACKS the transformation requester that you find in the
  1738. Detail Editor, so you can't just type in coordinates for critical
  1739. points. You have to use grid size and lock to accurately place
  1740. objects.
  1741.  
  1742. OK, we know how to add details. Now how do you take the measurements
  1743. off of the can? There are a few ways- you could judge by eye, you
  1744. could take a ruler and measure everything, or you can try sneaky
  1745. tricks. If you fake it by eye, your model is obviously going to be
  1746. somewhat inaccurate, even if you use a can sitting right next to you as
  1747. a model. Measuring distances works quite well, though. I used a finely
  1748. measured rule and a sheet of graph paper to transcribe the shape of all
  1749. the ridges and bumps. Inputting these coordinates to Imagine involves
  1750. using the Coordinates display and matching points. 
  1751.  
  1752. However, there is a quick and dirty trick you can use, though this
  1753. probably isn't applicable to most objects you model. Zoom the front
  1754. view so that it takes up the whole screen. Center your can in your
  1755. display by using the "set center" command in the Display menu and
  1756. clicking at the center of your object. Now, zoom in or out until the
  1757. size of the outline on your monitor approximates the real size of a
  1758. Coke can. Take a real can, and press it against your monitor, then 
  1759. eye it. Use the radius as the determining factor, not the height.
  1760. Now repeatedly use the "set zoom" command from the display menu and
  1761. muck with the zoom to get the screen can size as close as you can to
  1762. the real can size when you press it against the monitor. On my 1950
  1763. monitor a zoom of 1.05 worked well, but it will vary from monitor to
  1764. monitor.
  1765.  
  1766. Once you match sizes, you can actually press the can against the screen
  1767. with one hand, and move points to match the can outline with the
  1768. other. [You'll look like a fool if anyone else is around, too!]
  1769. However silly this seems, I found it the easiest way to input the
  1770. shape of the can. When I sat with a ruler and some graph paper, my
  1771. paper diagram turned out to be less accurate as the screen method and
  1772. took much more time.
  1773.  
  1774. A rehash on adding the fine details: You have a rough outline. To
  1775. refine it, just pick the area you want to refine, add a new point on
  1776. that line, and drag it where you want it. I found that getting a highly
  1777. accurate cross-section (using 17 points) took less than 3 minutes with
  1778. the admittedly stupid screen trick. Using a ruler I spent 10 minutes
  1779. measuring and converting before I even moved the mouse.
  1780.  
  1781. When you're done, you should have an outline similar to mine, which is
  1782. shown in the picture can_three.
  1783.  
  1784. Take a look at your object in the perspective mode with the window zoomed
  1785. to full screen, and solid display mode on. Rotate the view up and down.
  1786. Nice, huh?
  1787.  
  1788. What about the top hole, and the tab? The tab is easy to add in the
  1789. Detail Editor, by extruding a flat outline. If you expected to make it
  1790. as an integral part of the can form, I'm sorry to say you were
  1791. expecting a bit much. The Form Editor likes to make single-piece
  1792. objects, and you can see how the tab is really a separate part of the
  1793. can "form." This doesn't prevent you from making a separate tab object
  1794. and sticking it on, and this is exactly what I did.
  1795.  
  1796. The hole, on the other hand, is pretty easy to include using the Form
  1797. Editor! If the hole is facing towards us as if we were going to take a
  1798. drink, the hole is obviously non-radially symmetric, and it is not
  1799. front-back symmetric. It IS left-right symmetric. Turn the symmetry
  1800. from the radial '90-degree' to 'right'.  Now, in the FRONT view, move
  1801. the top point (that is now on the Z axis) straight OUT about a third
  1802. of the way to the outer radius.  This is the WIDTH of the hole on top.
  1803.  
  1804. In the RIGHT view, move the left-top point (which is the front-top on
  1805. the can) about 90% of the way to the can rim. Leave the right-top
  1806. point where it is. The finished can form can be seen in picture
  1807. can_four.
  1808.  
  1809. See what we've done? Moving the points away from the center made a
  1810. hole. We made the front-to-back cross section asymmetric to one side,
  1811. so the hole location is moved. Look in the perspective view. Play
  1812. around with moving the hole around and turning symmetry on and off.
  1813.  
  1814. Why did this make the asymmetric hole? Remember how the form is
  1815. generated? Each cross-section is interpolated from the 4 defined cross
  1816. sections. The front cross section blends to the right, which then
  1817. blends to the back, then to the left, then back to the front. This is
  1818. very hard to describe, but play with the points and you'll see the
  1819. kind of control you have. 
  1820.  
  1821. Note that the hole is an oval, which is not quite true for a can. The
  1822. Forms editor really won't let you do much more unless you want to
  1823. start mucking with radius modulation, but that's for the next example.
  1824.  
  1825. This completed can object can object can be loaded into the Detail
  1826. editor, at which point it becomes a normal object. You can move
  1827. individual points, apply brush maps, attributes, textures, and
  1828. manipulate it in any way you would a normal object. After manipulation
  1829. in the Detail Editor, the objects are generally not reloadable back
  1830. into the to the Forms editor. Using the Detail editor, you might make
  1831. and attach the can tab, or move individual points on the top hole to
  1832. make the ellipse to match a real can's hole more accurately.
  1833.  
  1834. A final rendered view of a can generated using this tutorial can be
  1835. seen in the HAM image 'Craftsman', where you can see two separate
  1836. versions of the can. The carved wood Coke logo was an experiment that
  1837. turned out well. The Coke logo itself was made with wire cutters, a real
  1838. can, Digiview, and an hour's touchup in DPaint III.
  1839.  
  1840. The can could have also been generated in the Detail editor by using
  1841. the powerful "Sweep" mold function. However, sweep certainly does not
  1842. provide the interactive updates that the Forms Editor does, and can
  1843. only make completely symmetric objects. The next examples will show
  1844. how much more powerful the Form Editor is when it makes very
  1845. non-lathed objects.
  1846.  
  1847. ---------------------------------------------------------------------
  1848.                      Building a Water Splash
  1849. ---------------------------------------------------------------------
  1850.  
  1851. Think of a ball dropping into a pool, and how a corona of water spurts
  1852. out around it. The splash is vaguely symmetric, and is certainly not a
  1853. group of primitive cylinders and tori merged together. 
  1854.  
  1855. Building a splash like this using the Forms Editor is obscenely easy,
  1856. much easier than the Coke can!  It is even simple to animate the
  1857. splash!
  1858.  
  1859. If we want to make a crude splash model, we should first envision what
  1860. a cross section of such a splash would look like. The picture
  1861. splash_one is a 10 second DPaint line drawing of how I see water would
  1862. splash up and away at the peak of the splash. The center is disturbed
  1863. but mostly flat, and there is a steep "wall" of water at at certain
  1864. radius pointing out and up. It curls a bit at the top, with a bulge at
  1865. the peak, and slopes back IN and down. Outside the wall the water is
  1866. less disturbed. The wall is the 'shock wave' and is expanding (and
  1867. falling) with time.
  1868.  
  1869. It is very, very easy to make a primitive version of this in the forms
  1870. editor. We pretty obviously want our main axis that our slices are
  1871. centered around to be vertical. Start a new form, with 30 points and
  1872. 10 slices, which should give us enough detail to rough something out.
  1873.  
  1874. Initially, we'll want to make the splash symmetric. Later, we can add
  1875. asymmetric details, but for now we want the coarse primitive to be
  1876. radially symmetric, since it will define the basic structure of the
  1877. form. Use the '90-degree' mode in the Symmetry menu.
  1878.  
  1879. The initial spherical horizontal cross section is completely useless
  1880. for our purposes.  Pick a height at which you want to base the splash
  1881. (the bottom point of the cross section is a logical choice) and when
  1882. you're building the splash, imagine that it is sitting on top of this
  1883. water. It will give us a good reference point.
  1884.  
  1885. Pull the top point of the cross section way out and down to the water
  1886. level. Keep the bottom point in at the center, and also at the water
  1887. level. The inbetween points should be moved into a crude outline of
  1888. the sloping water wall that we envisioned. My initial model is shown in
  1889. the picture splash_two. It took about a minute to build.
  1890.  
  1891. Look at the perspective view. A bit bland, but it is certainly on the
  1892. right track. Add a few points to the cross section at the top of the
  1893. water wave to give it a more complex, bulging appearance. You might
  1894. want to add some points near the base, especially on the inside, and
  1895. make the water near the wave a bit more ragged.
  1896.  
  1897. Now what? Our coarse form was trivial to make, but is far to
  1898. artificial. Let's jazz it up! Turn OFF symmetry, and muck around with
  1899. ALL FOUR cross sections. You can increase the height of the wave in
  1900. one, make the water a little rougher in another, make the peak on one
  1901. a bit more curved... give them character. DON'T make huge changes like
  1902. adding a second wave (you're welcome to try!)  but certainly make them
  1903. a bit different from each other. Think of adding a 25% noise level.
  1904. You might keep an eye on the perspective view, as well- it will show
  1905. you how the Forms Editor copes with blending these different shapes
  1906. together.
  1907.  
  1908. Now what? A little more variation? There's no reason the splash has to
  1909. be a perfect circle, or even an oval, is there? Of course not. The TOP
  1910. display shows what the HORIZONTAL cross section of our splash looks
  1911. like. Right now it's a nice circle. Now, our splash really should be
  1912. pretty circular when looked from above, but not perfectly... Go ahead
  1913. and muck with the shape, and again, watch the perspective view to see
  1914. what happens. You might want to leave SOLID mode on, especially with a
  1915. fast machine, since the wireframe of such a non-structured object is
  1916. often very confusing.
  1917.  
  1918. You can move the radial points any way you like. I suggest that you
  1919. only move them generally in and out, or the splash will get somewhat
  1920. lopsided. Also, avoid having sharp spikes. You can see how easy it is
  1921. to make our splash look like the Statue of Liberty's crown. 2 or 3
  1922. point bulges look very nice, major details formed with just 1 point are
  1923. sharp and look like knives. Not very appropriate for a soft water splash!
  1924.  
  1925. My final splash is shown in the picture splash_three. A
  1926. rendered version with three different splashes is called Ocean_Sunset. 
  1927. Ocean_Sunset is actually a still from the current version an anim I'm
  1928. working on.  It has the dolphins jumping around, the water moving with
  1929. wind-driven waves, and eventually will have a ship slowly steaming
  1930. along with a nice wake and smoke. The animation of the splashes 
  1931. still need a lot of tweeking, but it's getting better. This is still a 
  1932. work in progress, but it looks nice even now.
  1933.  
  1934. What about animation? I said it was easy to animate, but how?  Well,
  1935. let's think of what the animation SHOULD look like, then figure how to
  1936. implement it. How does a splash evolve? The big wall of water starts
  1937. at the center of the circle and moves outward at a pretty constant
  1938. speed. It grows in height, curls over, and crashes down as is
  1939. progresses. If we make maybe 4 or 5 splashes, one for each stage of
  1940. the splashes growth, we can just move from one to the other. How?
  1941. Morph! Morph is easy to forget when you're dealing with complex
  1942. objects like splashes. Since morph requires its objects to have the
  1943. same structure, different complex objects often won't work with each
  1944. other.  However, if we use the same basic starting form for each of
  1945. the splashes (same # points and slices) we can have Imagine smoothly
  1946. interpolate from one form to the next.
  1947.  
  1948. Considering the fact that creating the splash took maybe 5 minutes,
  1949. you can see that making an entire animated splash is a 15 minute task.
  1950. You don't even have to make new splashes, just modify old ones! When
  1951. animated, you might add frills like separate objects for flying water
  1952. droplets, and have them follow parabolic arcs.  The Form Editor won't
  1953. let you make detached objects like that, so you'll have to make them
  1954. as separate objects that fly out, as opposed to pinch off and fly
  1955. away... You might also use two different splash forms superimposed to
  1956. give the splash a more complex character. The splash we built is still
  1957. a bit plain.
  1958.  
  1959. This example should impress how easy it is to make complex shapes with
  1960. an amazing amount of speed and control. Asteroid-maker, indeed!
  1961.  
  1962.  
  1963. ---------------------------------------------------------------------
  1964.                      A Complex Boat Hull
  1965. ---------------------------------------------------------------------
  1966.  
  1967. Making a boat hull might not seem very easy. If we want to use the
  1968. Form editor, shouldn't there be some sort of near-radial symmetry? It
  1969. turns out that you can really push the Forms Editor around in ways
  1970. Impulse hoped we'd discover.
  1971.  
  1972. A boat hull is a pretty simple object, right? Well, sorta. If you
  1973. wanted to build one in the Detail editor, you'd make an outline the
  1974. shape of an iron (as in for pressing clothes), then you'd extrude it
  1975. and use slice to make the bottom.
  1976.  
  1977. Well, this would work, but it's a pretty cheesy boat hull, no matter
  1978. how good your iron outline was. Even if you were a good modeler, made
  1979. a series of outlines and used skin to blend them, you are going to get a
  1980. hull that is boxy as opposed to a nice graceful curve.
  1981.  
  1982. Think of a big ocean-going vessel, not a cheeseball rowboat. The prow
  1983. is sharp, to cut into the water, and it angles down and back. The body
  1984. of the hull is fairly straight, and the stern rounds off smoothly with
  1985. a flat face as opposed to the prow's sharp point. At no point,
  1986. however, does the hull look like it was constructed of different
  1987. sections. To reduce drag, the shape smoothly changes both from the top
  1988. view (a teardrop with a squashed bottom?) and the side view. It has
  1989. one axis of symmetry (left/right).
  1990.  
  1991. How could we ever model this in the Detail Editor? Not easily, and
  1992. certainly not in one piece. 
  1993.  
  1994. Well, fine. But how could we ever model this in the Forms Editor,
  1995. either? It certainly is not very obvious.
  1996.  
  1997. A big hint of how we would design a form for the hull lies in where
  1998. we place the center, the radial point, of our cross sections. We also
  1999. have to decide whether the slices should be coming out horizontally
  2000. (like the axis was a vertical mast) or at right angles. The choice is not
  2001. obvious. 
  2002.  
  2003. If the axis is horizontal, then the radial sections would tend to
  2004. form a dome over the hull. If you made the radii of the 
  2005. overhead portion negative (There is no problem doing this!) 
  2006. we could just make a double-thickness of hull. This is messy, but
  2007. workable. 
  2008.  
  2009. The second option is to use a vertical axis, which gives us the
  2010. benefit of a simpler object since there is no "dome" to add extra
  2011. needless points.  We want to make a new form object with an XY cross
  2012. section. Select 3 slices and 7 points and we'll make a very simple
  2013. version of the hull and work from there.
  2014.  
  2015. The question is where to but the center of our (vertical) axis. There
  2016. are three places on the hull where there is a sudden change in
  2017. cross-section -- the bow, and the two stern corners. If we want to
  2018. make these changes fairly sudden, we probably want to define each one
  2019. of them as one of our 4 cross sections. The interpolated cross
  2020. sections by definition are interpolated, so there's no major change in
  2021. shape. Thus, we want the bow to be in line with one of the four cross
  2022. sections, as well as in line with the two stern corners. This makes
  2023. our choice easy- the only place we can do this is the very back of the
  2024. boat, along the (port-starboard) centerline.
  2025.  
  2026. Now that we've decided where to put the axis, how do we want to define
  2027. the cross sections? Well, we want something that is left-right
  2028. symmetric, and NOT front-back symmetric, so we should turn on
  2029. left-right symmetry.
  2030.  
  2031. We want to change the default nearly-closed spherical cross section to
  2032. something more resembling an open gravy dish. Move the very top point(s)
  2033. way out and down some. The front cross section point (the left one in
  2034. the Right view) should be moved the most. The back cross section point
  2035. should be moved down, but not out very much. Remember that the stern is
  2036. very close to the axis, and does not have much detail. 
  2037.  
  2038. The Front view should look somewhat like a big "U", and the Right view
  2039. should look like a sideways stretched "U" with one end (the bow) sloping
  2040. back and the other pretty vertical.
  2041.  
  2042. The horizontal cross section (top view) should look (reasonably) like 
  2043. a boat viewed from above. The front should be pointed, the back should
  2044. be fairly blunt, but rounding off to the sides. 
  2045.  
  2046. Describing the shape of these forms is harder than describing a Coke
  2047. can. Look at the picture hull_one to see what my crude shape looks like.
  2048.  
  2049. You can see in the perspective view that this basic form has a little 
  2050. hull-like character. It is sharp in front, and has a blunt rear. You can
  2051. add extra points to each of the views to make a smoother form with
  2052. more details. My final boat hull is shown in picture hull_two. To get an
  2053. idea of how complex the real object is, there is a picture of the same
  2054. hull shown in the detail editor in picture hull_three.
  2055.  
  2056. ----------- 
  2057.  
  2058. The last example is much shorter than the rest, because there is
  2059. little more to say about the Forms Editor. What is does is very
  2060. complex, but there are few sneaky tricks once you learn how to control
  2061. the shape of your objects. The best way to become proficient with the
  2062. forms editor is to practice! I challenge you to build a banana.  Or a
  2063. light bulb WITH threads! [It's quite possible, though annoying]. How
  2064. about a good pencil object with six sides?
  2065.  
  2066. This wraps up the tutorial on using the Forms Editor. Sometime in the
  2067. next month or so I'll be writing a similar (though probably even
  2068. longer!)  tutorial on the using the Detail Editor and another on the
  2069. general process of object design and creation.
  2070.  
  2071. -Steve Worley   5/28/91
  2072.  
  2073. ---------------------------------------------------------------------------
  2074. Steven Worley                                       spworley@athena.mit.edu
  2075. ---------------------------------------------------------------------------
  2076.  
  2077. Because I was erked when my brush and texture tutorials were posted on
  2078. Compuserve sans credit, I include the following:
  2079.  
  2080. The text contained within this document as well as the associated 
  2081. computer files are (C) Copyright 1991 by Steven P. Worley. 
  2082. They be distributed freely under the following conditions: 1) The entire
  2083. text, including this copyright notice, is kept entire and 2) Steven Worley
  2084. is duly credited as being the author. The author reserves all other rights
  2085. to this text.
  2086.  
  2087. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2088.  
  2089. APPENDIX C:  VIDEOTAPE
  2090.  
  2091. i) dumping to videotape
  2092. ii) comments on dumping to videotape
  2093. iii) more comments on dumping to videotape
  2094. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2095.  
  2096. i) VIDEOTAPE- dumping to videotape, by Steve Worley:
  2097.  
  2098. Ian Lichter mailed me personally about dumping to videotape. There are three
  2099. avenues you can take. If you have a 24 bit display and want to record the
  2100. image in its professional glory, you're going to need a single frame video
  2101. tape recorder, (about $2500!) and a transport controller to control it. (
  2102. I get the feeling these run like $300, but I don't know). I don't know
  2103. the details- I don't know anyone who has actually done this.
  2104. A second, easier and cheaper solution is to use a product like DCTV, which
  2105. animates and outputs direct NTSC which can be plugged right into your
  2106. standard VCR. The quality is way lower than 24-bit, but the quality is 
  2107. also way higher than standard Amiga output. 
  2108. If you don't have a DCTV, you can dump standard Amiga output to video using
  2109. a genlock. This is a device that overlays Amiga graphics on video, but it
  2110. can be used to dump JUST the amiga graphics. The Video Toaster will do this,
  2111. as well as any genlock. I've never used one, but I've read several good
  2112. reviews of the $190 Minigen, and several bad reviews of the $99 Amigen.
  2113. What do I use? I havn't had the $$$ for a genlock, so I have a piece of
  2114. hardware called an encoder- it just converts Amiga RGB to composite video.
  2115. In fact, you might really want to pick one of these up- I have an A520
  2116. "RF Modulator for the Amiga 500", which I bought new for $35. It does
  2117. a superior job at encoding- as good as any genlock or the Toaster. [A
  2118. friend with a Toaster was in a huff until we compared videotapes. Couldn't
  2119. tell the difference, both were excellent.] Don't let the name fool
  2120. you- the A520 outputs both RF (for direct  plug-in to a TV) and
  2121. composite (I feed this to my VCR). It also works on any Amiga (I have
  2122. a 3000). It plugs into the RGB port, though it does  NOT have a
  2123. pass-through for a monitor. The A520 is definitely the cheapest way to
  2124. go if you just want to dump Amiga animation. 
  2125. Something to look for is Colorburst, which MIGHT be able to do really 
  2126. impressive color animation. [Nobody's seen this wonderful stuff yet, so
  2127. its still vapor.] It outputs RGB, which would have to be encoded by an 
  2128. external genlock (or an A520) before being able to be saved on videotape.
  2129. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2130.  
  2131. ii) VIDEOTAPE- more comments, by Scott Sutherland:
  2132.  
  2133.     Just to clarify, the DCTV hardware itself does not animate (I am sure
  2134. that all of you realize that, but (as they say about winning the Florida 
  2135. lottery) 'Ya Never Know'!).  What it can do is to 'decode' images with the
  2136. special DCTV color information in them as they are played back using the
  2137. standard RAM animation techniques (ANIMS ;^)).  It DOES look really nice.
  2138. The HAM-E will do this as well.
  2139. On Genlocking devices...
  2140. Steve Worley writes:
  2141. >I've never used one, but I've read several good
  2142. >reviews of the $190 Minigen, and several bad reviews of the $99 Amigen. 
  2143.     I read many articles on genlocking devices for the Amiga, including
  2144. some very technical ones which analyzed their output with professional 
  2145. equipment (way out of my field) including a vector scope, all of which panned
  2146. the Amigen.  Well, I was using a CMI VI-500RF (now DigiFEX, I think) 
  2147. encoder, similar to the A520, for dumping my video to tape (it also has a
  2148. really nice output and can easily be converted to work with SVHS as well).
  2149. I had wanted to play around with genlocking video and graphics, so when I
  2150. got a chance to buy a used Amigen for $50, I did it, despite the BAD reviews.
  2151. I have played around with it, as mentioned in one of my previous postings,
  2152. and the quality is surprisingly good.  At least for my HOBBY work.  The 
  2153. colors look nice and bleeding is not too bad.  It IS hard to read text (same
  2154. for my encoder), but that is to be expected.  I understand that where the 
  2155. poor output of the Amigen will hurt me will be if I do multi-generational
  2156. dubbing and/or copying.  But by then the VHS quality will not be to great 
  2157. either.  For JUST putting TITLES on videos or simple one-pass video/graphics
  2158. interactions, the AMIGEN will work just fine.  If you see one used and want
  2159. to play around with genlocking (I highly recommend it.  It's GREAT FUN and
  2160. can really get the creative juices flowing!!!), I recommend it.  If you are
  2161. doing anything that will be BROADCAST or even dubbed/edited into a final copy
  2162. and your final generation will be third or so, the Amigen will probably fail
  2163. miserably (my guess is that this is true for the Minigen and Progen as well).
  2164. However, when doing this type of editing, you will probably be doing SVHS 
  2165. anyway, so that might help.  BROADCAST quality IS OUT, though.  
  2166. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2167.  
  2168. iii) VIDEOTAPE- still more comments, by Mark Thompson:
  2169.  
  2170. Steve Worley writes:
  2171. > If you have a 24 bit display and want to record the
  2172. > image in its professional glory, you're going to need a single frame video
  2173. > tape recorder, (about $2500!) and a transport controller to control it. (
  2174. > I get the feeling these run like $300, but I don't know).
  2175. Actually, animation controllers run from about $1500 to $6000. However, the
  2176. soon to be released JVC S-VHS VCR will do single frame recording without
  2177. one (the first of its kind). It should sell for about $2200. Also, recordable
  2178. video disk units do not require a transport controller.
  2179. > A second, easier and cheaper solution is to use a product like DCTV, which
  2180. > animates and outputs direct NTSC which can be plugged right into your
  2181. > standard VCR. The quality is way lower than 24-bit, but the quality is 
  2182. > also way higher than standard Amiga output. 
  2183. I was doing this over the weekend. In 3bit mode I got about 15 fps and some
  2184. fairly high contouring (banding). In 4bit mode, image quality was much better
  2185. (though contouring was still evident) but my frame rate dropped dramatically,
  2186. maybe 5 to 7 fps. I was using PageFlipper F/X on a 2500/30 with 640 x 400
  2187. images. I might note that these were camera "flybys" through a city scape
  2188. at up to 105 miles/hour so there was a good sized delta from image to image.
  2189. The 60 frame animation was over 5meg in 4bit mode and about 3.3meg in 3bit.
  2190. Anyway, one thing to note about DCTV images converted from 24 bit renderings,
  2191. both 3 and 4 bit modes exhibit a fair amount of rainbowing. Any area that
  2192. is too "hot" (too much color bandwidth) will show a rainbow of colors. DCTV
  2193. includes a filter to reduce this effect (at the cost of sharpness).
  2194. > I have an A520 "RF Modulator for the Amiga 500". It does a superior
  2195. > job at encoding- as good as any genlock or the Toaster. A friend with
  2196. > a Toaster was in a huff until we compared videotapes. Couldn't tell
  2197. > the difference, both were excellent.
  2198. You will probably not notice much difference on a low quality VHS unit.
  2199. But believe me, when viewed with high quality video equipment (D2, U-matic
  2200. SP, recordable laser disk, etc.) there is no comparison. In video, one rule
  2201. *generally* holds true, "you get what you pay for".
  2202. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2203.  
  2204. APPENDIX D:  CENTAUR TAPE:
  2205.  
  2206. i) review
  2207. ii) second review
  2208. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2209.  
  2210. i) Centaur Tape Comments, by Richard Nollman:
  2211.  
  2212. I believe that this IS NOT the tape offered in the Impulse newsletter.  I
  2213. talked with Steve Worley last night who is in frequent contact with Rick and
  2214. asked the same question.  He said that as far as he knows it is not.  I thin
  2215. k Steve said something about it not being finished (not sure about this).
  2216. But the best person to ask of course (or second best) is Steve.  I am sure
  2217. he will post something about this.  
  2218. I met the guy who did the Centaur Imagine tape.  He was stapling the plastic
  2219. bags of people going into the Creative Computers booth (large Amiga mail 
  2220. order house) at the AmigaWorld Expo in NY last weekend so that people would
  2221. not steal things. Pretty crude I thought.  Anyway, I went to the Centaur 
  2222. booth to see the tape before I bought it, and their machine was broken.  
  2223. The person in the booth suggested that I talk to the person who made the 
  2224. tape, took me over the the bag stapler, and introduced me.  I questioned him
  2225. for about 10 minutes or so (which was very difficult -- Creative Computers 
  2226. was very busy and every 10 seconds or so a new crowd of people would need to
  2227. be stapled before they entered the booth).  Anyway, I described the initial
  2228. problems I had with the manuals, the help I received from the Imagine 
  2229. mailing list, and a friend who spent quite a bit of time working through 
  2230. the various editors with me.  I told him that I was creating simple 
  2231. animations with spheres moving and camera moving and doing chrome and 
  2232. reflectivity etc.  He said honestly that he felt that at that point I was 
  2233. beyond the tutorial.  It really was designed for people who could not use 
  2234. the manual to get started.  He said that it did not really get into much 
  2235. depth on setting attributes and things at that level.  So fortunately I did
  2236. not spend the money.  I met a poor soul who had some very nice Imagine 
  2237. renderings that were being displayed at the Black Belt booth who had bought
  2238. the tape (very excited about it). We had a great discussion about Imagine 
  2239. and ray-tracing.  He seemed very advanced.  I am sure he was pissed when he
  2240. played the tape...I hope he can get his money back...
  2241. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2242.  
  2243. ii) Second Review of Centaur Tape, by Mark D. Manes:
  2244.  
  2245. Warning Will Robinson... Danger, Warning!
  2246. Folks, I recently checked out the new Imagine video tape from Centaur 
  2247. Software... in a word, I think it, well, sucked.   
  2248. I hate to use words that strong, but the narration was terrible.  I
  2249. felt as though I was hearing stream of thought rather than a nice
  2250. presentation of the Imagine program.  Further after watching the 
  2251. nearly 90 minute tutorial (yawn) the creation that I suffered 
  2252. 90 minutes to see was ugly to bone.
  2253. The tutorial seems to be disjointed and does not explore the 
  2254. detail editor with any depth.  Further it breezes through the
  2255. description of adding faces to an object without ever really
  2256. showing you how to do it.  I about died when I watched the section
  2257. on the attributes requestor, the tape said things like the filter
  2258. gadget adjusts the filter settings!  Great, I could not have 
  2259. guessed that.  :-)
  2260. I _have_ created many interesting pictures just from following the
  2261. tutorials in the Imagine manual!  This tape would be great if
  2262. they had simply recreated the tutorials that are in the manual,
  2263. instead of taking me on a disjointed chaotic trip through Imagine.
  2264. This tape should be avoided at all costs.  
  2265. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2266.  
  2267. APPENDIX E:  SURFACE MASTER
  2268.  
  2269. i) Advertisement
  2270. ii) Review 1
  2271. iii) Review 2
  2272. iv) Additional Details
  2273. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2274. i) (I uploaded this from People/Link a couple of days ago - Mark Davis.)
  2275.  
  2276.     Introducing "Surface Master" for IMAGINE by Louis Markoya. A  
  2277. comprehensive collection of Attribute and Texture settings which  
  2278. allows you to master your renderings and achieve professional results.  
  2279.     The Surface Master package comes with a detailed manual explaining 
  2280. all  Attribute and Texture parameters, effects and how to animate 
  2281. those  effects plus hints and tips on special applications. A disk 
  2282. containing  IFF pictures illustrates each Attribute and Texture 
  2283. setting. All  objects and many attribute files are included.
  2284.     Attributes for many surface qualities like Chrome, Glass, Gold, 
  2285. Brass, Diamond, Emerald, etc., are included and explained. Proper Index's of 
  2286. Refraction  and custom settings are used for the best results in 
  2287. different Global  situations. In addition to these, many other preset 
  2288. examples explore  the  realm of possibilities within IMAGINE. 
  2289. Texture variables will be explained as well, with a wide array of each  
  2290. Texture's possibilities presented. For Example, Wood, has a matrix of  
  2291. settings to explore all of its parameters, and seperate settings for  
  2292. Pine, Oak, Zebrawood etc.. Pictures illustrate the wide array of all  
  2293. effects possible. The actual objects rendered are included. Settings  
  2294. and the discussion of their variation are covered in the manual.  
  2295. Textures can be animated and hints for the best settings are offered.  
  2296. The effects of moving the axis and the interaction of object size to  
  2297. Texture settings are explained.
  2298. Surface Master is of great value to both the novice and pro,  
  2299. eliminating the struggle to achieve those special results. 
  2300.  Those knowledgeable of his work are fully aware of  
  2301. his abilities, especially in Turbo Silver and IMAGINE. Now he shares  
  2302. many of his "secrets". The Surface Master package is available for  
  2303. $30.00 only through direct mail from Louis. 
  2304. Send Bank Check or Money Order to;* 
  2305. Surface Master
  2306. Computer Imagery
  2307. 49 Walnut Ave.
  2308. Shelton, CT 06484
  2309. Make checks payable to Louis Markoya
  2310. * Personal checks accepted, but shipment will be delayed for check 
  2311. clearance. 
  2312. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2313.  
  2314. ii) Review of Surface Master, by Richard Nollman:
  2315.  
  2316. I received my copy of Surface Master on Monday and within minutes it paid for
  2317. itself in time saved and frustration avoided.  Unless you are a master Turbo
  2318. and/or Imagine user, this program will save you hours (days, months, years?)
  2319. of experimentation.  
  2320. For those of you who might not have read the initial advertisement
  2321. posted last week, Surface Master is described as "a comprehensive
  2322. collection of Attribute and Texture settings which allows you to
  2323. master your renderings and achieve professional results."  The
  2324. software makes good on the promise.  
  2325. I am a novice 3D modeling, Imagine, and Amiga user (bought my 3000 at
  2326. the end of October). Within ten minutes I created an animation with a
  2327. gorgeous wood grain chesspiece and four reflective spheres with
  2328. varying reflection values on a blue highly reflective plane.  I have
  2329. been concentrating my time on just learning how to set the basic
  2330. attributes (to do things like glass, chrome, etc).  I thought that
  2331. things like texture mapping would have to wait.  Well, I loaded up
  2332. Surface Master, wrote down the values for the wood texture of a
  2333. Surface Master object (textures, unlike attributes, cannot be loaded
  2334. directly because they are not saved in the same way) and applied these
  2335. values to my chesspiece.  I was astounded at the quality of the
  2336. rendered image.
  2337. The first thing that struck me was the prompt arrival of the software.
  2338. I sent in a money order last week and received my copy on Monday.  
  2339. The software has a simple program that consists of two levels of
  2340. menus.  The first contains a matrix of windows with attributes and
  2341. textures that correspond to the ones found in the Imagine Attribute
  2342. requestor.  Click on an attribute or texture and next level menu
  2343. appears with 4 sets of 4 objects (spheres or cubes) rendered with
  2344. various settings for that attribute or texture.  Sometimes a window
  2345. will have several attributes described.  Each object has a value
  2346. assigned to it (R,G,and B values or a single value) that
  2347. you can write down on paper.  In most cases you do not have to; the
  2348. objects that appear in the Surface Master menus come in Surface Master
  2349. directories.  When you are working in Imagine, simply load in the
  2350. object or the attribute from the Surface Master directory.  Markoya
  2351. used them to create the Menu screens.  To get the texture values, load
  2352. in the objects with the texture values you want, invoke the Attribute
  2353. requestor for the object, choose texture, and write down the values.
  2354. Just one texture, wood, is worth the price of the package.  Surface
  2355. Master includes 16 different samples of wood grain combined with
  2356. linear, random and radiance(?).  In addition, there are 16 samples of
  2357. different types of wood (mahogony, ash, pine, oak, zebrawood, etc.).
  2358. In a few minutes, without having to puzzle over Imagine
  2359. documentation (which usually ends up providing little or no help), I
  2360. understood how to use the linear texture to create my wooden chesspiece.
  2361. For the color attribute, Surface Master includes a color wheel of
  2362. spheres.  Load these spheres individually as objects to your
  2363. rendering project or the attributes associated with them.  Very
  2364. helpful in getting just the right color for an object without having
  2365. to diddle around (or at least get a close approximation).  
  2366. Color and wood are only a few examples.
  2367. Finally, the documentation.  The manual is very small, but clearly and
  2368. thoroughly presented.  Each attribute and texture is described in
  2369. detail.  Impulse could learn alot about documentation from this
  2370. manual.  It packed so much information in such a small space that I
  2371. need to go back and read it several times to really get the meat of it
  2372. (mostly I was just eager to try out the software).  From many it will
  2373. probably become a standard text on Imagine attributes and textures.
  2374. And all for just $30.  Amazing...
  2375. My hats off to Louis Markoya.  I hope that he is going to continue to enhance
  2376. Surface Master.  I would love to see a disk of objects and other attributes.
  2377. Maybe an entire disk concentrating on reflection or chrome.  If he has more
  2378. Imagine-related software coming out, put me on the top of the list.
  2379. I do have one complaint.  It comes with what appears to be a projector 
  2380. program.  But it is not documented and I cannot figure out how it works.  
  2381. If anyone knows how to contact Louis, please pass this on.
  2382. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2383.  
  2384. iii) Review of Surface Master, by Harv Laser:
  2385.  
  2386. To explain this a little further, Surface Master is made up of a full
  2387. disk of some different parts:
  2388. -There's a Projector (tm Right Answers Grouop) sequence of screen shots
  2389. showing all the various attributes and textures available on the disk,
  2390. such as a screen full of wood spheres of different kinds of woods. I don't
  2391. remember offhand how many screen shots but at least a dozen.
  2392. -There's a directory full of objects from which all those screen shots
  2393. were made. Say you wanted to use Zebra wood on one of your objects in a
  2394. rendering. You'd load the zebra wood object (which you could see in the
  2395. slide show) into Imagne, select it and then select the attributes
  2396. requester, jot down the wood settings, then select your own object and
  2397. punch in those same settings to get that same wood. 
  2398. -There's a directory full of attribute settings for which you do not need
  2399. to load in Louis' objects nor copy down any settings. These attributes
  2400. can be loaded directly into the attribute requester and applied directly
  2401. to your own object - without interfacing at all with the "textures" that
  2402. come with Imagine.  Stainless Steel, Chrome, Emerald, Diamond, etc. would
  2403. be examples of attributes which can be loaded in right from disk without
  2404. textures, whereas Woods, Dots, Grids, Checks and other texture effects
  2405. require the extra step of loading in Louis' object and copying down and
  2406. then re-entering the textures for your own objects.  
  2407. The beauty of this disk is that Louis has done all the hard work. You 
  2408. don't have to sit there trying to figure out how to make something look
  2409. like chrome or like ivory. All the settings are on the disk in one of
  2410. the two forms described above along with pictures of them all. 
  2411. So it's a lot more than just a disk full of pretty pictures or numbers
  2412. painted on the screen. 
  2413. disclaimer: Louis Markoya is a friend of mine and he's marketing this
  2414. product on his own and I just want people to know that it exists. I
  2415. get no "cut" from the money he makes from it.
  2416. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2417.  
  2418. iv) Details, from Richard Nollman:
  2419.  
  2420. In response to a request to post the attributes and textures covered in the
  2421. Surface Master software, I post the following:
  2422. Spheres and cubes are rendered in color on menu screens (very nice)
  2423. with libraries of objects, attributes and textures included in the
  2424. package.  Each of the following categories displayed on a submenu screen:
  2425.  
  2426. Reflect/Filter   4 x 4 matrix of spheres with RGB and intensity values
  2427. Dithering/Roughness 2 x 4 matrix of spheres with intensity values (50-225)
  2428. Specular/Hardness   2 x 4 matrix of spheres with intensity values (50-225)
  2429. Color    49 colored spheres in a color wheel;9 spheres in grayscale
  2430. Shininess  3 x 4 matrix of spheres with shininess, filter, and index of 
  2431.            refraction values
  2432. Index of Refraction 3 x 3 matrix of spheres with intensity values (1-3.4)
  2433. Linear/Radial (textures)  4 x 3 matrix of spheres with transition width
  2434.                           and reflect/filter RGB values
  2435. Checks/Angular (textures) 4 x 3 matrix of spheres with angular, checksize,
  2436.                           and reflect/filter RGB values
  2437. Grid/Dots (textures)  4 x 4 matrix of cubes with gridsize, reflect/filter 
  2438.                   RGB, and dot spacing values
  2439. Bricks (texture)  4 x 4 matrix of cubes with XYZ shift, Y shift with Z value,
  2440.                   Z shift with Y value, and reflect/filter RGB values.
  2441. Disturbed (texture)  4 x 4 matrix of spheres with amount, wavelength, X 
  2442.                      separation, and small values
  2443. Wood (texture)  4 x 4 matrix of spheres with ring spacing, exponent, 
  2444.             variation and random seed values
  2445. Preset Materials    4 jewels (diamond, ruby, saphire, and emerald) and 12
  2446.                     spheres (glass, crystal, water, quartz, steel, pewter,
  2447.                     plastic, ivory, chrome, gold, brass, and copper)
  2448. Woods    12 spheres with the following types of wood: birch, mahogany, cherry
  2449.          oak, pine, red cedar, zebra wood, red mahogany, black walnut, ash
  2450.          walnut and tulip (? - can't read my own writing)
  2451. Combos   16 cube assortment demonstrating mixed textures including:
  2452.          wood/grid, grid/wood, linear/disturb, bricks/linear, bricks/wood,
  2453.          and bricks/linear
  2454.  
  2455. That's the list.  Have fun with it (I sure am).  Just want to mention that I
  2456. do not even know Louis Markoya so I am just posting this as a satisfied
  2457. customer.
  2458. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2459.  
  2460. APPENDIX F: TTDDD (an excellent shareware package).
  2461.  
  2462. i) getting coordinates with TTDDD.
  2463. ii) making threads.
  2464. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2465.  
  2466. i) Coordinates, by Glenn Lewis:
  2467.  
  2468. Doug>      First and foremost.... how can one get the coordinates out of
  2469. Doug> Imagine for the points without going to each one and writing down
  2470. Doug> the coordinates?
  2471.     Piece of cake.  Get TTDDD.zoo from ab20.larc.nasa.gov (I think
  2472. it is in the incoming/amiga directory).
  2473. Type: "ReadTDDD Enterprise.object > Enterprise.ttddd"
  2474.     Now take a look at "Enterprise.ttddd", and it's got all the
  2475. information you need, I believe.  Scott mentions some commercial package
  2476. that does the same thing.  TTDDD, like Scott's, works on Turbo Silver
  2477. objects, but it can read Imagine objects, and will simply skip the IFF
  2478. "chunks" that it doesn't understand (and will tell you what ones they
  2479. are).  Whenever I get the Imagine IFF format specification, I plan on
  2480. upgrading the TTDDD package.
  2481. Disclaimer:  TTDDD is ShareWare, written by myself.
  2482. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2483.  
  2484. ii) THREADS, by Glenn Lewis:
  2485.  
  2486. >>>>> On Mon, 25 Mar 91 20:58:40 EST, spworley@ATHENA.MIT.EDU said:
  2487. Steve> Anyone have any good ideas on how to make threads, like on a
  2488. Steve> bolt?
  2489.     Sure.  Piece of cake.  In the last twenty minutes, I cooked up a
  2490. little Perl script that creates a threaded object whose parameters I can
  2491. control.  I used, of course, WriteTDDD.  In fact, here is what I typed:
  2492. thread 60 0.5 10 4 5 | WriteTDDD > thread.tddd
  2493. Here is the Usage information:
  2494. Usage: thread NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS
  2495. where NUMPTS is the number of point in a single revolution
  2496.       SPACING is the number of units between threads
  2497.       HEIGHT is the total height of the bolt.
  2498.       IN_RADIUS is the radius of the inner thread.
  2499.       OUT_RADIUS is the radius of the outer thread.
  2500.     Does this sound like something you would want, Steve?
  2501.     Unfortunately, I don't have my Amiga with me right here, so I
  2502. can not see if it looks like what you want.  So I'll send you the
  2503. object, Steve, and let you take a look at it.
  2504.     Nevertheless, here is the Perl script that I used to create it.
  2505. If anybody doesn't know what TTDDD is, you can grab it off of
  2506. ab20.larc.nasa.gov and it will give you more information.  It stands for
  2507. "Textual Three Dimension Data Description", and was written by me.
  2508.     Have fun.
  2509.                         -- Glenn Lewis
  2510.  
  2511. ********************************************************************************
  2512.  
  2513. #!/usr/local/mcfg/bin/perl
  2514. if ($#ARGV < 4) {
  2515.     print STDERR "Usage: $0 NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS\n";
  2516.     print STDERR "where NUMPTS is the number of point in a single revolution\n";
  2517.     print STDERR "      SPACING is the number of units between threads\n";
  2518.     print STDERR "      HEIGHT is the total height of the bolt.\n";
  2519.     print STDERR "      IN_RADIUS is the radius of the inner thread.\n";
  2520.     print STDERR "      OUT_RADIUS is the radius of the outer thread.\n";
  2521.     exit(0);
  2522. }
  2523. print
  2524. "/* thread.ttddd - Written by Glenn M. Lewis - 3/26/91\
  2525.  * Steve Worley had asked on the Imagine mailing list how to create\
  2526.  * a thread-like object for Imagine.  Instead of saying 'how about\
  2527.  * using TTDDD to create it, I thought... I'll see if I can create\
  2528.  * a thread using TTDDD.  Since my Amiga isn't handy, I'll let somebody\
  2529.  * else pump this through WriteTDDD to get an object and check it out.\
  2530.  */\
  2531. \
  2532. OBJ Begin\
  2533. DESC Begin\
  2534.   NAME \"Thread\"\
  2535.   SHAP Shape 2\
  2536.   SHAP Lamp 0\
  2537. ";
  2538. # OK.  Start calculating the position of the points, edges, and faces...
  2539. $NUMPTS     = $ARGV[0];
  2540. $SPACING    = $ARGV[1];
  2541. $HEIGHT     = $ARGV[2];
  2542. $IN_RADIUS  = $ARGV[3];
  2543. $OUT_RADIUS = $ARGV[4];
  2544. $PI=3.14159265;
  2545. #
  2546. # Calculate the points needed...
  2547. #
  2548. $height = 0.0;
  2549. $heightstep = $SPACING/$NUMPTS;
  2550. $theta = 0.0;
  2551. $thetastep = $PI/$NUMPTS;
  2552. $count = 0;
  2553. while ($height < $HEIGHT) {
  2554.     $outer_x[$count] = sin($theta) * $OUT_RADIUS;
  2555.     $outer_y[$count] = cos($theta) * $OUT_RADIUS;
  2556.     $outer_z[$count] = $height;
  2557.     $theta += $thetastep;
  2558.     $inner_x[$count] = sin($theta) * $IN_RADIUS;
  2559.     $inner_y[$count] = cos($theta) * $IN_RADIUS;
  2560.     $inner_z[$count] = $height;
  2561.     $theta += $thetastep;
  2562.     $count++;
  2563.     $height += $heightstep;
  2564. }
  2565. #
  2566. # Start writing the TTDDD data...
  2567. #
  2568. # First, list the points...
  2569. #
  2570. printf("  PNTS Pcount %d\n", $count*2);
  2571. $edge = 0;
  2572. for ($i=0; $i<$count; $i++) {
  2573.     printf("    PNTS Point %d %g %g %g\n", $i*2,
  2574.         $outer_x[$i], $outer_y[$i], $outer_z[$i]);
  2575.     printf("    PNTS Point %d %g %g %g\n", $i*2+1,
  2576.         $inner_x[$i], $inner_y[$i], $inner_z[$i]);
  2577.     # Count up the number of edges we need
  2578.     if ($i<$count-1) {
  2579.         $edge += 3;                         # O[i]..O[i+1]..I[i]..O[i]
  2580.         if ($i>=$NUMPTS) { $edge += 3; }    # I[i]..I[i+1]..O[i-N]..I[i]
  2581.         if ($i+1<$count) { $edge += 3; }    # O[i+1]..I[i+1]..I[i]..O[i+1]
  2582.        if ($i>=$NUMPTS) { $edge += 3; }    # I[i+1]..O[i+1-N]..O[i-N]..I[i+1]
  2583.     }
  2584. }
  2585. #
  2586. # Second, list the edges...
  2587. #
  2588. printf("\n  EDGE ECount %d\n", $edge);
  2589. $e=0;
  2590. $face = 0;
  2591. for ($i=0; $i<$count-1; $i++) {
  2592.     printf("    EDGE Edge %d %d %d\n", $e++, $i*2, ($i+1)*2);
  2593.     printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2, $i*2+1);
  2594.     printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, $i*2);
  2595.     $face++;
  2596.     if ($i>=$NUMPTS) {
  2597.         printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2+1);
  2598.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i-$NUMPTS)*2);
  2599.         printf("    EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, $i*2+1);
  2600.         $face++;
  2601.     }
  2602.     if ($i+1<$count) {
  2603.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2, ($i+1)*2+1);
  2604.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, $i*2+1);
  2605.         printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2);
  2606.         $face++;
  2607.     }
  2608.     if ($i>=$NUMPTS) {
  2609.       printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i+1-$NUMPTS)*2);
  2610.      printf("    EDGE Edge %d %d %d\n",$e++,($i+1-$NUMPTS)*2,($i-$NUMPTS)*2);
  2611.         printf("    EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, ($i+1)*2+1);
  2612.         $face++;
  2613.     }
  2614. }
  2615. #
  2616. # Third, list the faces...
  2617. #
  2618. printf("\n  FACE Tcount %d\n", $face);
  2619. $e=0;
  2620. $f=0;
  2621. for ($i=0; $i<$count-1; $i++) {
  2622.     printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2623.     if ($i>=$NUMPTS) {
  2624.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2625.     }
  2626.     if ($i+1<$count) {
  2627.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2628.     }
  2629.     if ($i>=$NUMPTS) {
  2630.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2631.     }
  2632. }
  2633. #
  2634. # Now wrap up the object description...
  2635. #
  2636. print "\nEnd DESC\nTOBJ\nEnd OBJ\n";
  2637. exit(0);
  2638. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2639.  
  2640. APPENDIX G:  WAY COOL PROJECTS
  2641.  
  2642. i) extruding picture
  2643. ii) rolling sphere
  2644. iii) 3-D font
  2645. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2646.  
  2647. i) Way cool project 1, by Steve Worley:
  2648.  
  2649. This was way-cool! Try it.
  2650. Get an object. A sphere will do, but whatever you want.
  2651. FLAT map a brush onto it. Make sure the brush Y axis is bigger than the
  2652. object, make sure the object just fits in the positive x positive z quadrant.
  2653. Go to "transform axis" in the brush requestor, select "size", then write down
  2654. the x & z scalings.
  2655. Make a plane. Map the same brush on it. Use transform to get the same size. 
  2656. make sure the plane's size is at least as large as the brush.
  2657. Go to the stage editor.
  2658. Put the object DIRECTLY behind the plane. Orientation and position are
  2659. critical- you want the brush maps to line up. [They're the same size.].
  2660. Put the camera on a 45 degree view so you don't have a dead on shot.
  2661. Make a path that moves the object straight THROUGH the plane, for about 20
  2662. frames.
  2663. Animate it!
  2664. Here's what you'll see. You'll see a flat picture slowly take on a three-d
  2665. form, "extruding" exself into a third dimension. The join between plane
  2666. and object is indetectable because the brush maps are identical. 
  2667. This effect is REALLY cool, though you have to be careful to line everything
  2668. up right. Use  "transform" to set position and orientation of the
  2669. objects and their maps exactly if you're having trouble.
  2670. You can render this in scanline- it doesn't need trace.
  2671. You could make a room with a framed picture (I have a REALLY nice picture
  2672. frame) with a picture of something on it. Camera moves to an oblique view,
  2673. zooms in a little, picture starts "extruding." Maybe out a little, then back,
  2674. then out then back, then finally, the object finally makes it all the way
  2675. out (and the picture behind has a new brush map without the object!). Then
  2676. the released thing (whatever!) could explore the "Real World". An idea. Run
  2677. with it if you like, post how it goes.
  2678. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2679.  
  2680. ii) Way cool project two, by Steve Worley:
  2681.  
  2682. I've been working on an animation that seems to be coming out 
  2683. very nicely- there's a couple of techniques dealing with brushes
  2684. that people might find very useful.
  2685.  
  2686. I created a still first. It started as a "mirrored balls on a checkerboard"
  2687. setup, with the centerpiece being a big, black, glossy sphere with
  2688. a picture of me "trapped" inside the sphere. Later I turned it into
  2689. an animation with the camera moving about so that you could see the 
  2690. different sides. It looked cool- the real goal was to see how well
  2691. a "traditional" mirror & glass sphere populated plain would look.
  2692.  
  2693. It turned out so well that I changed the animation to a still camera
  2694. and having the ball roll around the scene, in front of mirror-balls
  2695. and in back of glass balls to see the neat effects. [Remember the
  2696. long transparency essay I wrote? I was tweaking the crystal spheres
  2697. for this anim.] Making the ball roll was a trick. How do you get 
  2698. something to roll (at the right speed!) while following a path? Getting
  2699. it to spin (like a plane doing a barrel roll) is easy- you align to
  2700. path, then set Y rotation to be from 0 to 360 and it will do a complete
  2701. spin. This is not in the right direction for a rolling ball, though.
  2702. [Annoying feature- you can't say from 0 to 720 for two spins, 
  2703. or 0 to 3600 for ten.] To get it to roll I created a second path, which
  2704. was basically a  larger copy of the first, so the first path was 
  2705. just inside of the second path. I had an axis (a track) follow this 
  2706. new, outside path, then used "align to object" to make the sphere point
  2707. to the axis. Thus, as the ball moved along its path, one end (the positive
  2708. Y axis direction) was always pointed at right angles to the direction
  2709. of motion. Is this clear? Now using the "initial Y angle" and "final Y
  2710. angle" I set them to 0 and 360 and it rotated as it rolled. As a special
  2711. effect, I raised the "track path" a little in the Z direction so the
  2712. sphere looks a little bit like a top rolling around, since the spin
  2713. axis was not horizontal anymore.
  2714.  
  2715. An alternative would be to make a cycle object, rolling around the X axis.
  2716. This is equally valid, but I did it this way first.
  2717.  
  2718. The picture of me on the sphere was pretty easy. I used Digi-View
  2719. to take a picture of me with a scared/concerned expression and 
  2720. my hands palm forward outstretched a little. I stood in front of a 
  2721. clean, white background. I saved the pic as an IFF24 picture from Digi-
  2722. View, and used The Art Department to balance it. Digi-view's balancing
  2723. controls are fine- TAD has a couple of nice features, though, like
  2724. scaling and especially gamma correction, which increases contrast by
  2725. expanding color scales. (I'll explain if someone wants me to.) I saved
  2726. the pic as a 900x600 16 color IFF, then loaded it into Deluxe Paint III.  
  2727.  
  2728. Deluxe Paint is a wonderful program, and has no objection to loading large
  2729. IFFs. I touched up a couple scanning artifacts with the smooth and blend
  2730. tools, then removed the background. To do this, I first used the filled
  2731. rectangle tool to fill in the big, easy to clear spots of background 
  2732. (a wall in my case). I then used the stencil (frisket to you Disney 
  2733. folks) to let only the brightest few whites be changable. A pass or two with
  2734. a big brush along the edge of my body, and woosh- the background was gone. 
  2735. I then added a new background ( a grid of white lines) by picking my body
  2736. up as a brush and stamping it on a grid I made on the spare page. I saved
  2737. the picture, and I was done!
  2738.  
  2739. Imagine does not care what size the picture it maps is- they all get 
  2740. normalized to the brush-axis dimension. Thus, my LARGE picture was of 
  2741. significantly better quality than just a screenful. Optimally, if I had a 
  2742. 24 bit paint program, like the Firecracker paint program, Colorburst's 
  2743. paint program, or Toasterpaint, this would have given the highest quality 
  2744. output. Anyone want to give me a Colorburst?
  2745.  
  2746. Wrapping is an art, and everyone should read Mike Halvorson's brush-wrapping
  2747. posted about 2 weeks ago. Its pretty good, though he mis-describes Y axis
  2748. functionality in wrap-wraps, but not in flat-flats (though maybe I'm wrong).
  2749. Luckily, wrapping spheres is a snap- you can't screw up as long as your 
  2750. brush's Y axis is smaller than the radius, and the axis is centered. 
  2751. Complex shapes are much more difficult, and best described in another post 
  2752. sometime. [Like after I can do them consistantly!]
  2753.  
  2754. Anyway, the result mapped onto the sphere looks real cool. The grid wraps 
  2755. around the sphere like longitude/latitude lines, and I was smart and made 
  2756. my grid match up from one side to the other. This made the join on the back 
  2757. of the sphere look UTTERLY undetectable, so it isn't obvious this is a flat 
  2758. object wrapped onto a curve.
  2759.  
  2760. I rendered this 80 frame anim over about 6 days, (hires raytrace) and 
  2761. it was beautiful! The glass in particular looked sleek. I then wanted to
  2762. spiff it up even more, so I added a glass arch (half a stretched torus) for
  2763. the prison-sphere to roll though, and I animated myself on the sphere.
  2764.  
  2765. How did I animate myself on the sphere?? This is a VERY useful trick, and
  2766. I learned it long before I had Imagine, when I was into DPaint anims. What I
  2767. did was I took a camera and VIDEOTAPED myself kinda waving my hands around
  2768. like a mime (the invisible wall in front of me, palms outward)
  2769. with the concerned/scared look on my face. After a few takes, I thought I had
  2770. the  right feel, so I booted my 3000 [well, sat down in front of it- its
  2771. always on!]  and started Digiview.
  2772.  
  2773. Time out: IMPORTANT! Digiview DOES work on a 3000- you must use 'CPU
  2774. nocache noburst' before you start Digiview, or it will die! I almost sold
  2775. my DV until I said "hmm. I'll try one more time. What if I .." and it worked.
  2776.  
  2777. Anyway, I played the tape and freeze-framed on the start of the part I liked.
  2778. YOU CAN'T USE A CHEESY 2-HEAD VCR! You need good stills.I digitized a frame, 
  2779. then spent a good 10 minutes perfecting the balances. [I didn't use TAD 
  2780. because it would have been a pain saving all the frames (1/2 meg each!) and
  2781. loading/balancing/saving them again. ADPro has an AREXX interface, and so 
  2782. does Digi-view. This would have been an IDEAL application of AREXX!] Once I
  2783. had the balance perfected, I re-digitized, balanced, and saved the picture as
  2784. 'steve001'. The 001 is important- if you save it as 'steve1' it will be 
  2785. a bit harder to load into DPAINT. [You'll see!] I then forwarded 3 frames,
  2786. and digitized, and saved as 'steve002'. I did this for 40 frames. Yes, its
  2787. mind-numbing, but really only takes half an hour, and you can be listening
  2788. to tunes or talking on the phone or whatever. 
  2789.  
  2790. Finally, I started DPaint, and blessed my extra RAM. I went into 'load 
  2791. picture', selected file 'steve001' and at the bottom of the name requester, 
  2792. entered '40 frames'. Dpaint then loaded the next 40 frames (alphabetically) 
  2793. as an anim.  See why we have steve001? It loads steve001 to steve0040 
  2794. correctly. If I used 'steve1' the order would be steve1,steve10, steve11, 
  2795. ... steve19, steve2, steve20 and so on.
  2796.  
  2797. OK, I have an anim. I play it, and voila! There I am, looking like a person
  2798. acting like he's trapped in a sphere! :-)  The quality of this method is
  2799. SURPRISINGLY good. Try it- even if you don't use Imagine. It's lots of fun!
  2800. 320 by 400 animates faster if you're not doing it for Imagine, but just
  2801. want to muck around. [well worth it!] Here's an idea- tape yourself throwing
  2802. and catching a volleyball, then digitize your best friend. Remove his or her
  2803. head as a brush, then paste a copy of the head on top of the ball in every
  2804. frame of your anim. Voila! Macabre juggling! Works really well if they're 
  2805. smiling.
  2806.  
  2807. Back to the Imagine anim. I digitized in hi-res for quality- it doesn't
  2808. animate as well in DPaint (more bandwith -> slower anims) but for our
  2809. purposes this makes no difference at all. I cleaned out the background 
  2810. for all the frames by using "anim-painting"- holding down the left-amiga
  2811. as you paint. [3000 owners, you might have to change the WB prefs- this
  2812. is the default way to drag screens] By using big brushes for the easy stuff, 
  2813. then stencils, a smaller brush, and a much slower pace for the edges near my 
  2814. body, I removed the background from all the frames. 
  2815.  
  2816. I picked up my body as an animbrush, then anim-painted onto a 40 frame anim
  2817. of a stationary grid. I then used "save picture" [NOT anim!] and saved 40
  2818. frames as stevebg.. DPaint is smart, and makes stevebg001, stevebg002,... and
  2819. so on.
  2820.  
  2821. Now what? To Imagine! I call up my project, which currently has a static 
  2822. brush on the sphere. If I were starting from scratch, I would render the 
  2823. anim in HAM scanline to insure the pacement of the brush and feel of the 
  2824. anim.  Once you animate the brush, it is not a trivial matter to change its
  2825. position on the object you're wrapping. 
  2826.  
  2827. However, I have already done a static test. I know that my brush is in a 
  2828. good position- I'm upright and centered just as I pass the camera- a good 
  2829. shot. I then went into the detail editor and loaded sphere.iob [my 
  2830. _I_magine _OB_ject] and entered the attributes selector, and select the 
  2831. brush map already there. I changed the picture filename in the gadget to 
  2832. say 'stevebg.001' and exited and saved the object as sphere001.iob. I then 
  2833. went back to the brush name, changed it to 'stevebg002' and saved the sphere
  2834. as sphere002.iob. Note there is no need to RELOAD the sphere- I just save 
  2835. it. This goes by VERY fast once you get started, and I had 40 objects in 5 
  2836. minutes. Also, every sphere has the same attributes and same brush position,
  2837. etc. The only thing to change is the name of the brushmap.
  2838.  
  2839. To the stage editor! I already had my rolling sphere set up- remember, I
  2840. did a static version before that looked good. I deleted the "actor" that was
  2841. my sphere, keeping the position and alignment that were already there.
  2842. I then added a new actor from frame 1 to frame 1 called sphere001.iob.
  2843. I then added a new actor from frame 2 to frame 2 called sphere002.iob.
  2844. I then added a new actor from frame 3 to frame 3 called sphere003.iob.
  2845. I then added a new actor from frame 4 to frame 4 called sphere004.iob.
  2846. .....
  2847. I then added a new actor from frame 40 to frame 40 called sphere040.iob.
  2848. I then added a new actor from frame 41 to frame 41 called sphere041.iob.
  2849. ....
  2850. and so on. My anim was such that my repetitive motion made a pretty clean
  2851. transition from beginning to end [in DPaint] so repeating it looked all
  2852. right. If not, ping-ponging would have worked [instead of 1 2 3 4 1 2 3 4 
  2853. 1 ...  it goes 1 2 3 4 4 3 2 1 1 2 ...] Also, I made sure the best views 
  2854. (by the camera) didn't have a transition, anyway. Entering the 80 objects 
  2855. again is boring, but the file requestor is fast enough (and has last file 
  2856. defaults!) so it only took 10 minutes. Alternatively, it might have been 
  2857. neat to see what morphs would do- this would fade out one frame while 
  2858. bringing in the next (I think) and might be worth trying sometime. This 
  2859. would be done by changing the object every other frame (or even less often)
  2860. and setting the # of transition frames to 1 or more.
  2861.  
  2862. Well, thats it! The ray-traced anim is rendering now- the scanline version
  2863. showed me waving around just fine, and it really looked smooth! I thought
  2864. that people might like to try this technique- its roundabout, but the
  2865. results are worth it! 
  2866.  
  2867. A note- Animation Journeyman (another renderer) supports animbrushes... must
  2868. be nice, though I haven't seen it.
  2869.  
  2870. If anyone wants me to clarify anything I'll be happy to. This little 
  2871. essay has grown a bit in length... :-) I won't be able to post the final
  2872. anim, its HUGE!, as is the project itself (40 pictures, > 40 objects..)
  2873. though I might put a still or two on ab20 if people want me to.
  2874.  
  2875. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2876.  
  2877. iii) 3-D FONT, by Steve Worley:
  2878.  
  2879. I was mucking around trying to make a new "Imagine" picture for the startup
  2880. sequence, and thought it might be neat to ray-trace a nice version.
  2881. The question is what is the best way to get nice 3D fonts? Well, you get
  2882. a nice big font (I used my Pro-Page Helvetica-Bold at about 80 pixels high)
  2883. and save the word(s) as a picture, then convert this to an outline in
  2884. the Detail editor and extrude. You can auto-face using "slice", being careful
  2885. to only slice 2 or 3 letters at once to keep an Imagine bug at bay. [It will
  2886. hang if you have too many letters. It's not the number of points- perhaps
  2887. too many pieces. Anyway, a bug. 
  2888. This gives you a nice 3D font. 
  2889. Well, not really. It gives you a 3D font, but to be honest, its kinda boring.
  2890. Its just flat letters with depth. Ugh.
  2891. Wouldn't some neat color or chiseled edges or something help?
  2892. "Yes!" I said to myself. Beveled edges all the way around would look 
  2893. way-cool! OK, lessee, I can put a smaller copy of each letter on top of
  2894. itself, um, no, I could drag the points on the outline in, um, no, argh!!!
  2895. It is VERY difficult! I couldn't come up with a good way to do it. Remember,
  2896. you don't want a letter becoming smaller as it reaches the surface of the
  2897. letter, you want it to become THINNER. A smaller copy on top would make
  2898. a cone-like effect. Not what I'm looking for.
  2899. Finally, I came up with a method that worked really well. First, go into
  2900. DPaint and pick up your word or whatever as a brush. Then use shift-O to
  2901. THIN the brush. I thinned three times- you might do more with a bigger
  2902. font, less with a smaller font. An font less than about 50 pixels high
  2903. is gonna die.
  2904. I then saved the picture with "IMAGINE" stamped on it twice- thick and thin.
  2905. I loaded it into Imagine and converted to an outline.
  2906. Now, I wanted to make a surface that went from the big outline to the thinner
  2907. one. An ideal job for skin, right? Yes! 
  2908. Well, almost. Skin requires both objects to have the same number of points.
  2909. (What would it do with the extras on one or the other?) The thinned letters
  2910. were considerably more complex than their thick versions. [The curves were
  2911. tighter, and right angles were rounded.] 
  2912. What I did was copy the thick font's outline, and superimposed it onto the
  2913. thin version. Then I used "drag points" on each letter to make the big font
  2914. look just like the thinned one. I also used my judgement in what looked good-
  2915. the thinned font was a guide, not an absolute.
  2916. When I was done, I deleted my original thin letters. I was left with 
  2917. "IMAGINE" in normal letters, and "IMAGINE" with thin letters. Both versions
  2918. had the same number of points.
  2919. The letters should have some depth, so I copied the thick version again,
  2920. and extruded it into a tube. 
  2921. To make the chiseled faces, I placed the thin version directly on top
  2922. of the un-extruded version, then raised it up a little bit in the
  2923. direction towards me. Then I picked them both and skinned. 
  2924. Putting a front face on the letters was pretty easy. I just used the
  2925. slice method shown in the tutorial manual. Messy, but it works. I used a HUGE
  2926. triangle (primitive plane, one corner deleted) placed over the IMAG
  2927. letters at a depth JUST under the thin letters, and sliced. I deleted 
  2928. the crufty leftovers (the outside triangle bits, the VERY small parts
  2929. chopped from the skinned chisel section). I repeated for the INE 
  2930. letters. I then selected all of the faces and chisel parts, and JOINED
  2931. them into one object.
  2932. I was then left with an "tube" and a "cap". I placed the cap (the
  2933. front face and chisel edge) directly over the tube and joined them
  2934. both. I didn't bother with a back face, but you could face it if you
  2935. like, or even copy the cap and scale it in its depth direction by -1
  2936. to get an inverted version that will fit on the back.
  2937. Thats it! I used "merge" at the end to connect everything together. Be
  2938. careful to turn Phong _OFF_. You WANT a faceted appearance.
  2939. I haven't completed the picture, and I should really work on my water
  2940. waves. Or my thesis. Sigh.
  2941. Anyway, the final letters looked VERY slick. Try it!
  2942. Another idea would be using the letters to slice out a hollow in a
  2943. solid object, to get a carved/stamped surface.
  2944. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2945.  
  2946. APPENDIX H: Credits and email addresses
  2947. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2948.  
  2949.  Sandy Antunes     (antunes@astro.psu.edu)
  2950.  Edward Chadez     (echadex@carl.org) Colorado Alliance of Research Libraries
  2951.  Mark Davis        (davis@soomee@rust.enet.dec.com)
  2952.  Matt Feifarek     (mattf@picard.cs.wisc.edu)
  2953.  Duane Fields      (n350bq@tamuts.tamu.edu)
  2954.  Kevin Goroway     (pawn@wpi.wpi.edu)
  2955.  Mike Halvorsen
  2956.  Jim Lange         (jlange@oracle.com) Oracle Corporation
  2957.  Harv Laser        ({anywhere}!crash!hrlaser)
  2958.  Glenn Lewis       (glewis%pcocd2.intel.com@Relay.CS.Net)
  2959.  Mark D. Manes     (manes@vger.nsu.edu)
  2960.  Stephen Menzies   (S.Menzies@CAM.ORG)
  2961.  Richard Nollman   (rnollman@maxzilla.encore.com)
  2962.  Helge Egelund Rasmussen   (her@compel.dk)
  2963.  Marc Rifkin       (r38@psuvm.psu.edu)
  2964.  Dave Schreiber    (davids@slugmail.ucsc.edu)
  2965.  Udo Schuermann    (walrus@wam.umd.edu)
  2966.  Sean Schur        (schur@isi.edu) California Institute for the Arts
  2967.  Bill Squier       (u93_wsquier@vaxa.stevens-tech.edu)
  2968.  Colin Stobbe      (umstobb1@ccu.umanitoba.ca)
  2969.  Scott Sutherland
  2970.  Mark Thompson     (mark@westford.ccur.com) Radiant Image Productions
  2971.  Juan Trevino      (tucker@mammoth.cs.unr.edu)
  2972.  Steven Webb       (webbs@handel.cs.colostate.edu)
  2973.  Robert Wallace
  2974.  Don Whitaker      (dcwhitak@nyx.cs.du.edu)
  2975.  Steve Worley      (spworley@athena.mit.edu)
  2976.  (denbeste@ursa-major.spdcc.com)
  2977. ============================= END OF FILE ===============================
  2978.